商业银行分布式缓存实践及趋势分析

工行软件开发中心 2023-10-08 10:11:02

一、序言

 

缓存(Cache)来源于法语,原意是“隐秘的地方”,最早出现在一篇电子工程期刊论文,其作者将法语词汇“Cache”赋予“safekeeping storage”的涵义,用于电脑工程领域。缓存最早用于CPU的高速缓存,CPU在处理数据时,先到Cache中查询,如果已经存在,就不需要从主存中读取,以减少访问内存的时间。后来缓存的概念逐步扩展到计算机领域的各个方面,凡是位于速度相差较大的不同硬件或软件系统之间,实现低速部件与高速部件之间的解耦,协调两者数据传输速度差异的结构,都可称为缓存(Cache)。

 

在互联网发展的早期,数据量和访问量都不大,大部分是静态数据,动态交互类型不多,使用单个数据库即可以满足需求。但随着互联网高速发展,数据量、访问量爆发性增长,传统关系型数据库已无法平滑支撑超大规模、高并发、低延时等需求。在此背景下,分布式缓存逐渐走入人们的视野,其高性能、高可用、动态扩展的特性,能够高效处理大规模的实时访问需求,在分布式会话、分布式锁、促销秒杀、排行榜等场景中发挥了重要作用,有力支撑了当前数字经济时代银行系统的日常运营及线上线下各项营销活动的举行。

 

本文主要结合分布式缓存的发展现状,分析分布式缓存技术在商业银行领域的实践探索、面临的挑战与应对,展望分布式缓存的发展趋势和应用前景。

 

二、分布式缓存发展现状

 

 

1、技术发展日趋成熟

 

缓存一般采用高性能的键值类非关系型数据库作为存储引擎,为了提升性能,缓存的实现方式主要采用全内存键值访问,因此缓存又称为内存数据库或键值型内存数据库。近年来,随着分布式云计算技术的发展,缓存被广泛应用在分布式系统中节点的数据共享及访问性能提升。常见的有以下几类产品:

 

1)Memcached

 

Memcached是一款开源、高性能的分布式对象缓存系统,快速部署、易于开发、简单实用,利用多线程优势单实例吞吐量可达数十万QPS。缺点是所有数据都存于内存中,不支持数据持久化,断电后数据会丢失。不支持复杂的数据类型(如哈希、列表、集合等),服务端不支持分布式部署,只能在客户端实现分片和路由实现分布式架构。 

 

2)Redis

 

Redis是一个开源的使用C语言开发的基于内存可持久化数据库,提供多种语言的客户端,与Memcached类似,是一个基于Key-Value存储系统,支持Value类型更多,如哈希、列表、集合等,核心处理模块采用单线程模式,避免了不必要的上下文切换和竞争,无需考虑锁的问题,基于多路IO复用模型,可高效处理各种网络连接请求,单实例QPS性能可达10万级。 

 

3)Redis Cluster

 

早期Redis开源社区还没有成熟的集群方案,业界基于单实例Redis为存储底座,开发了Twemproxy、Codis等代理层架构的分布式缓存集群方案,从3.0版本开始,Redis社区提供了较为稳定的原生Redis Cluster分布式缓存解决方案,实现去中心化模式,集群中的节点通过Gossip协议彼此通信,并保存配置信息,无需代理层,客户端可直接与Redis集群的每个节点连接,支持动态缩、扩容及自动故障转移。 

 

4)RocksDB

 

RocksDB是一款提供键值对读写功能的引擎,支持多种数据类型,支持各种压缩算法,具有高度灵活的配置功能,支持在不同的生产环境中运行(纯内存、Flash、硬盘、SSD、HDFS等),用户可以根据需要对其进行针对性调优,如读性能优化、写性能优化、空间使用率优化。RocksDB可作为内嵌数据库使用,或作为数据库的底层存储引擎,适合在低成本、大量数据频繁操作的场景,如物联网、车联网、网络游戏等领域。

 

图片

表2-1 常见缓存产品对比

 

 

2、产业规模持续增长

 

根据Gaterner发布的2021年全球数据库管理系统市场报告显示,2021年全年规模达到800亿美元,同比增加22%。其中非关系数据库市场份额达148亿美元,占总体19%,而在2017年,这一比例仅为8%。同时,据中国信通院统计分析,截至到2022年6月,全球数据库产品共有511款,其中关系型数据库占比为45.0%,非关系型数据库占比55.0%。在非关系型数据库中,键值型数据库占比最高,达20.7%。

 

DB-engines Ranking是业界公认比较权威的数据库排行榜,图2-2选取了最为活跃的典型键值对数据库进行对比,其中Redis的活跃度在排行榜上遥遥领先,Memcached、RocksDB也在排行榜前15名中占据重要位置。

 

图片

图2-2 键值对类型数据库受欢迎程度排名

 

 

3、行业应用不断深化

 

2019年6月,由中国信息通信研究院牵头发布了《内存数据库白皮书》,本书阐述了内存数据库的概念,梳理了内存数据库的发展历史,分析了在不同行业的典型应用场景,并对主流的内存数据库进行了介绍和对比,还从不同角度提出了产品选型建议。

 

2020年,信通院启动《键值型内存数据库基础能力》评测,同时发布相关评测标准规范,约定键值型内存数据库的普适性要求,包括基本功能、兼容能力、管理能力、高可用特性、扩展性及安全性六个方面。

 

2020年8月,由工业和信息化部发布的《云计算服务客户信任体系能力要求 第12部分:云缓存服务》标准,主要针对基于内存键值对的云缓存的服务能力做了详细约定,包括数据持久性、私密性、服务可用性、故障恢复等方面。

 

上述权威部门发布的行业指导规范及业界通用标准,旨在推进相关技术应用水平,促进市场良性发展,分布式缓存系统在社交、电信、金融、电商等各行业应用越来越广泛,常见应用场景如下:

 

图片

表2-3 分布式缓存典型应用场景

 

三、商业银行分布式缓存实践探索

 

 

1、服务多模态,满足复杂多样的场景需求

 

在银行业应用系统中,依赖于分布式缓存的场景有很多,根据缓存数据种类划分,通常有以下几类:热点参数缓存,热点参数数据的特点是读取频繁,更新较少。例如:机构数据、业务属性、业务规则等数据。热点参数数据进行缓存后,应用对热点参数的查询基于缓存实现,将大大减轻数据库的负载压力,加速应用访问。会话状态缓存,该缓存包括 Session会话状态及应用横向扩展时的状态数据等。会话状态缓存数据一般是可再生的,一般无主数据源,所以对于缓存系统的可用性要求较高。另外,用于多个系统单点登录的应用场景也可以使用这类缓存。模型推理,在某些联机风控应用场景中,会使用到若干的历史数据进行实时的风控模型推理计算判断,但查询数据库的数据难以满足联机性能要求,使用内存数据库则可以大幅提升访问效率,及时识别并控制业务风险。例如:信用卡交易反欺诈检测需要使用大量的历史交易数据进行规则计算,且时效性要求较高,需在客户交易时作出欺诈识别。可以事先将一定时间段的历史交易数据从数据库加载到分布式缓存中,在内存中进行访问,达到提高模型推理效率,及时识别风险的目的。

 

面对转型过程中复杂多变的业务场景,商业银行打造多模服务能力,涵盖了多模式部署、多语言支持等服务能力。多模式部署包括性能优先模式和异地多活模式,其中性能优先模式适用对性能要求比较高的场景,主备数据采取异步复制,可提供站点内和同城双活两种高可用能力,核心链路所有组件均实现同城双活,保障高效稳定的数据存取能力;异地多活模式适用异地读写场景,需进行跨站点、跨异地部署,提供站点内强一致、站点间最终一致的读写服务,读请求采用就近原则,提升跨异地访问缓存数据性能,并提供异地多活高可用能力;支持多语言接入,提供兼容多语言API的客户端,满足各类采用非Java语言访问缓存的需求。通过以上多模能力的建设,满足多样化的业务需求,为商业银行数字化转型提供更加有力的支撑。

 

图片

图3-1 商业银行分布式缓存平台能力

 

 

2、拥抱云原生,支撑商业银行规模化应用

 

 

云原生能力建设及广泛运用,促进了企业IT技术架构转型的快速落地。在商业银行分布式缓存领域,云原生能力表现为以下几个方面:

 

核心链路部署容器化,保障系统稳定运行。充分利用容器化的敏捷和轻量级特性,结合K8S编排部署等能力容器化部署缓存核心组件,实现快速部署、秒级启动、节点高可用等生命周期管理;通过共享宿主机操作系统提升性能,降低系统负载,节省资源成本;通过配置资源使用率阈值及伸缩策略,实现核心组件的基础弹性伸缩能力,应对业务洪峰等突发场景;通过容器的滚动升级、优雅启停等能力保证了分布式缓存平台在日常运行及投产升级过程均保持7x24小时不间断服务。

 

运维架构建设强容错,支撑系统故障自愈。平台运维需提供多维度监控报警、各组件高可用切换、服务自愈、容错应急、熔断回切等能力,保障缓存平台服务连续性;需实时监控节点可用性、系统资源消耗、性能容量,校验并预警注册中心、存储节点等有状态组件数据的合法性;出现节点级、集群级及网络设备等基础设施异常时,提供自动化的高可用接管、自愈能力,通过监控系统、负载均衡策略配置,自动实施园区内高可用切换、园区间同城双活、异地多活、异地灾备等高可用接管,提供服务节点宕机后自动拉起等自愈能力;提供读写分离、异步清理等应急恢复的能力,快速响应并有效控制大事务、大key、热key、过期key集中等问题对业务造成的影响。

 

性能容量实时可监测,排查隐患及时有效。多维度、多层级采集分析性能数据,提供可视化展现,报表输出等功能。在集群维度,平台提供访问量、请求处理成功率、交易平均耗时等实时监控功能;在应用维度,平台提供联机访问量、接口访问量、读写交易比、连接数、业务数据量及请求数据量等实时监控功能;在平台组件维度,平台提供系统资源、负载量、线程运行状态、存储空间使用率及连接数等实时监控功能。通过管控平台对各类监控数据进行在线统计分析、聚合运算,并结合多样化图表进行可视化展现及报表输出。通过以上多维度的监测手段,体系提升系统可观测水平,高效排查系统隐患。

 

生产管控多元易运维,实现运营管理一体化。平台提供运维管理、运维自服务、用户权限管理和配置管理等多维度管控能力,实现一体化运维。运维管理提供全量节点状态管理、注册中心同城双活切换、集群配置信息维护、站点切换、可执行工具运行等应急服务;运维自服务提供集群升级及一键式验证、业务数据查询、修改、清理、导出以及生产熔断回切演练等接入租户自运维服务;用户权限管理提供租户权限、业务运维板块权限、审批人员职能管理、操作审计等管理功能;配置管理承载所有平台组件的配置信息变更、动态下发、监控报警黑白名单、日志级别变更等;依托多元化的生产管控能力,提升系统运维效率。

 

数据处理灵活多样化,打造健全可观测体系。平台提供数据流式导入导出、离线分析等数据处理能力,高效便捷掌握生产运行状态。支持数据流式导入及导出功能,基于存储层网络协议实现远程导入导出,不依赖于通过操作系统命令登录,也不受文件传输大小限制,可满足不同集群间数据异步复制,自定义数据批量导入导出等场景;提供缓存分析能力,能够观测数据库key分布(数据类型、长度、占用空间),在线抓取以及离线分析大key和热点key,及时发现生产运行隐患;提供数据回收站功能,在数据清空时先保存副本放入回收站,再执行清库操作,可用于误操作或其他应急场景快速数据恢复。

 

通过云原生能力建设,可大幅降低商业银行使用及运维分布式缓存的成本,支持分布式缓存的规模化应用。在工商银行,分布式缓存平台已部署集群50余个,日均交易访问量达750亿,其中在纪念币预约业务中提供了数据强一致的缓存服务,保证了由基础设施故障、网络中断等引起存储层高可用切换时的数据零丢失,提升了预约系统的数据可靠性,已连续多次保障了纪念币的顺利发行;在浦发银行,分布式缓存已应用在全行400多个业务系统中,平台每秒流量均值达到百万级,其中在单元化改造重点工程中,承载分布式核心系统的全局路由信息,有效降低了交易路由层的时延消耗;在微众银行,其分布式缓存产品已经应用在全行绝大部分的业务场景,超过300个应用系统接入,典型场景包括全行客户信息缓存、安全规则计算、客服系统的会话缓存等。

 

 

3、极致高性能,提升商业银行业务服务水平

 

分布式缓存在银行业务场景中广泛应用,在提升银行业务服务水平,助力数字化转型方面发挥着不可替代的作用。

 

在纪念币预约场景中,为客户成功预约纪念币保驾护航。纪念币预约面向客户群体广、业务处理时效性要求高、数据可靠性要求高。在引入分布式缓存存放前端库存后,实现抢币时对剩余额度的实时展现,改善用户体验的同时提升了系统的并发能力,有效缓解了数据库压力。

 

在个人手机银行业务中,保障手机银行服务安全可靠。个人手机银行作为商业银行重点应用,对业务数据可靠性要求非常高,为确保高可用切换期间的数据零丢失,分布式缓存为其提供园区内数据强一致、园区间数据最终一致的异地多活模式,在保证数据可靠性的同时,提升了异地读取缓存数据的性能。

 

在快捷支付领域,保障了支付服务的高性能与高可靠。快捷支付作为银行重点保障应用,对服务性能和稳定性都有较高要求。在工商银行快捷支付系统设计中,分布式缓存平台实现客户信息、路由编号等数据的快速存取,降低了数据库读写访问压力,解决数据库连接数过多等问题,服务能力大幅提升。

 

四、分布式缓存平台挑战与应对

 

在金融业全面数字化转型的背景下,对商业银行基础技术平台稳定性提出更高要求,分布式缓存作为数据处理层关键基础技术平台,在转型过程中也遇到了治理难、效率低等多种问题亟待解决。

 

 

1、海量数据带来内存消耗及成本过高的挑战

 

随着商业银行数字化转型的深入推进,业务数据持续快速增涨,分布式缓存作为内存密集型存储系统,控制存储成本是急需面对的问题。商业银行需考虑资源分类优化配置、资源隔离与整合机制优化等举措实现降本增效。

 

推动资源整合,为解决使用缓存的租户数量不断上涨造成设备资源大幅度增长带来的系列管理、运维问题,可按业务板块、数据类型等维度对租户进行物理整合,逻辑隔离,按业务需求提供多层级的缓存服务,取得业务需求、资源复用与业务隔离的平衡。优化资源配置,根据业务场景制定多种存储配置基线,同时积极推动容器化转型,依托云原生内核共享、灵活伸缩等特性,可将资源分配的颗粒度持续压缩,达到兼顾高可用和提升资源使用率的效果。

 

 

2、服务连续性保障与集群负载自适应的挑战

 

在业务场景不断增长和复杂化的背景下,业务形态、业务量的不可预知性增大,业务的敏态发展对银行信息系统性能容量水平提出更高要求,对于高可用、高并发、弹性伸缩的能力要求也与日俱增。缓存存储层属于有状态节点,在弹性伸缩时涉及业务数据的搬迁,且需要处理访问一致性、业务连续性等复杂场景,动态扩缩容能力建设技术难度高。

 

为满足业务负载多变的使用场景,商业银行分布式缓存系统可持续深化云原生能力建设,重点打造核心全链路快速安全稳定的弹性伸缩能力,进一步缩短缓存扩缩容执行周期,在业务高峰期,根据资源使用量、交易并发量快速扩展所需资源;业务低谷期,回收闲置资源以降低资源成本。从容应对负载多变的业务场景,提升生产运行应急能力,同时降低运维成本。

 

 

3、银行核心业务场景带来的数据可靠性挑战

 

在深化数字化转型过程中,商业银行对技术平台可靠性提出更高要求。例如核心快捷支付业务场景需在满足高性能交易的同时,还需承载“园区优先、副本强一致、同城双活”的业务需求及建设目标;秒杀、抢购等业务场景既要满足热点交易稳定性又要保证数据可靠性;在纪念币预约场景中,业务面向客户群体广、业务要求响应时间高、数据可靠性要求高。

 

商业银行缓存系统可通过对副本间数据复制一致性能力的建设优化,在发生高可用切换时、通过自识别、自降级等方式确保业务读写的强一致,避免在基础设施故障、网络中断等异常场景触发高可用切换后产生的数据丢失问题,解决商业银行在秒杀、库存扣减等业务场景下的超卖问题,提升缓存系统的数据可靠性。

 

五、分布式缓存发展趋势及展望

 

随着金融业务全球化,商业银行业务加速发展,网上银行、手机银行的业务量快速增长,兼顾访问性能及海量数据存储的需求日益增加,降成本、提性能一直是分布式缓存系统所追求的目标,未来的发展趋势主要有如下几个方向:

 

 

1、多存储模式应对海量数据

 

为提升数据存取速度,缓存系统的数据通常保存在内存等易失性存储介质,随着业务的持续快速发展,数据量的飞速增长,基于物理内存作为存储的分布式缓存系统在面对海量数据存储需求时显得有心无力,一方面,内存成本很高,单个宿主机和单个存储实例的内存配置都受到较大限制,通过水平扩容增加节点数量来满足大容量数据存储将产生更多的机房空间、电力、散热等需求,增加了企业的成本支出。另一方面基于物理内存的存储模式对于数据可靠性的保障能力较低,需要应用系统通过熔断回切,具备切换到主数据源重新加载数据等能力,给业务开发带来较高的复杂度和数据一致性风险。除此以外,对于存储会话信息的应用,因为没有基于数据库的主数据源,没有熔断回切能力,一旦缓存系统出现异常故障,将导致服务中断。

 

为解决上述具有海量数据存储需求,有以下两种方案:

 

一是基于磁盘KV存储。对于服务性能无需达到内存级别的苛刻程度、能接受访问过程中偶发延时抖动的业务场景,可以接入基于磁盘的KV存储系统(例如Kvrocks),这类存储系统具有如下特点:

 

  • 兼容开源Redis协议,支持多种数据类型,如String、List、Hash、Set等;

 

  • 支持主从复制,使用CheckPoint和WAL实现全量及增量同步;支持横向扩缩容,方便扩展;

 

  • 支持集群模式,满足大数据规模需求,低成本、大容量,最高可达PB级。

 

相比于基于物理内存的存储系统,磁盘KV存储系统具有更高的数据可靠性,对于顺序写磁盘的场景,性能与访问内存不相上下,可节约大量成本,拥有极高的性价比。

 

二是混合存储,冷热分离。混合存储方案整合了内存和磁盘二者的优势,在提供高速数据读写能力的同时满足了数据持久化的需求。使用磁盘存储全量数据,将热数据保存到内存中供应用快速读写。

 

内存数据:内存中存放经常访问的热数据,为快速确认要操作的Key是否存在,内存中也会缓存所有的Key信息。

 

磁盘数据:磁盘中存放不经常访问的Key和Value信息。

 

业务系统根据需求可动态调整内存和磁盘的比例,在保证常用数据访问性能不下降的基础上,混合存储能够大幅度降低用户成本,实现高性能容量和低成本投入之间的最佳平衡。

 

图片

图5-1 冷热混合存储架构

 

 

2、存算分离保障服务连续性

 

随着商业银行数字化转型的深入,数据总量和形式呈现指数级的增长,平台系统要应对不断飙升的业务下高性能、高可靠的挑战;与此同时还要具备极好的弹性伸缩能力、持续服务能力和合理的成本。在此背景下,原有的“存算一体”部署方式就越发显得力不从心。例如,由于计算、存储资源捆绑,在应对业务高峰时,无法只对计算资源进行快速扩容,现有存储资源扩缩容涉及数据的拷贝迁移,速度慢,并伴随着业务阻塞风险。在业务流量突增的场景中,通常需要紧急快速扩缩容,否则会影响用户体验,甚至给客户带来经济损失。

 

采用存算分离架构,扩容不需要迁移存储池中的数据,只需将数据分片信息均衡到新增加的计算节点上,不涉及迁移数据,实现真正意义上的秒级伸缩,对业务影响小。

 

图片

图5-2 存算分离部署架构

 

存算分离带来的价值主要有两方面。一是可靠性提升,共享存储结合云原生故障隔离和迁移能力,解决存算一体方案的可靠性短板;二是在资源配置优化层面,实现计算、存储弹性扩展,按需分配,减少因可靠性、运维能力不足造成的硬件冗余。

 

随着分布式技术、云计算技术的不断发展,及各行业数字化转型的不断深入,云化部署、云原生架构已成为趋势,缓存的存算分离将为企业数字化转型提供更加有力的支撑。

 

 

3、软硬件协同提升服务能力

 

一个完整系统的硬件主要分为处理器(CPU)、内存、存储、网络等四个部分,分布式缓存属于IO密集型而非CPU密集型应用,性能提升的瓶颈主要体现在网络层和存储层子系统。

 

1)网络层

 

传统的TCP/IP协议栈历经几十年的发展,已经非常成熟,但与生俱来的特性限制了分布式系统高性能需求。应用程序使用TCP/IP协议栈,数据需要通过用户空间复制到内核缓冲区,然后添加数据包头、数据封装等一系列操作,才被发送到网卡进行网络传输。这种模式下,一次数据传输需要多次内核空间到用户空间的上下文切换,以及多次的内存拷贝,会带来数十微妙的时延,同时需要主机的CPU参与,网络规模越大、带宽越高,CPU负载也越大,难以对上层应用提供高效的通信支撑。

 

远程直接内存访问(Remote Direct Memory Access, RDMA)技术是为了解决网络传输中的延时问题,它可以将数据从一台机器的内存数据直接传输到另一台机器,而无需操作系统内核参与,与传统的TCP/IP协议栈区别如下图所示:

 

图片

图5-3 传统TCP/IP对比RDMA

 

借助RDMA技术,应用程序可以访问远程主机内存而不消耗任何CPU资源,数据可以直接在网卡和内存之间传输数据,而无需经过网络协议栈处理,避免层层封装和解封装,也无需在用户态和内核态之间做上下文切换。

 

基于RDMA技术业界已有比较完善的产品和解决方案,为数据中心带来低延时和高吞吐的极致性能,助力金融、互联网、运营商等行业用户数字化转型,可大幅降低网络延时和吞吐量,网络通信将不再是分布式缓存系统的性能瓶颈。

 

2)存储层

 

传统的物理内存速度虽快但价格昂贵,单台服务器的内存资源扩展是有限的。另一方面,内存里的数据可能因断电故障导致丢失,数据的可靠性得不到保障。为了解决上述问题,业界厂商推出非易失性内存产品,该产品拥有超大容量、接近DRAM的性能等优势,可以增加单一服务器上虚拟机或容器密度,并可以为企业简化基础设施复杂度、提升应用性能和降低成本,节约机房空间、电力等资源。

 

 

图片

图5-4 存储金字塔模型

 

非易失性内存属于持久内存型产品,有近似内存级的访问延时和吞吐量,也拥有数据持久化的能力,填补了DRAM和磁盘之间的缺口。除了降低成本之外,持久内存型还能带来应用架构的简化,可将目前流行的应用+缓存+持久存储的架构模型,演进为更加简洁的应用+具备持久化能力的内存数据库的架构模型。适用于大容量、服务稳定可控、数据持久化要求高的温热数据存储场景。

 

可以预见,未来缓存技术仍将持续快速发展,在支撑CPU、磁盘、数据库及各级应用系统的高性能访问方面发挥重要作用。但缓存也是一把双刃剑,性能要求高的应用系统引入缓存可获得明显的收益,同时也会增加应用的复杂度和风险,比如出现数据一致性、缓存雪崩、缓存穿透等问题。实际使用缓存时,建议根据具体的使用场景和应用规模等进行整体架构设计,明确应用规范,并根据应用场景和访问规模的变化,不断对缓存的架构设计进行优化和演进,夯实系统支撑能力,控制系统运行风险,降低系统运营成本,持续赋能商业银行的数字化转型。

 

>>>>
 

参考资料

 

  • 【1】《金融科技发展规划(2022-2025年)》中国人民银行 

  • 【2】《云计算服务客户信任体系能力要求》YD/T 3764.12-2020中华人民共和国工业和信息化部 

  • 【3】《内存数据库白皮书》 中国信息通信研究院 

  • 【4】《键值型内存数据库基础能力技术要求》 中国信息通信研究院 

  • 【5】《分布式数据库技术金融应用规范 技术架构》JR/T 0203—2020 中国人民银行 

  • 【6】《分布式数据库技术金融应用规范 安全技术要求》JR/T 0204—2020 中国人民银行 

  • 【7】《分布式数据库技术金融应用规范 灾难恢复要求》JR/T 0205—2020 中国人民银行 

  • 【8】《深入分布式缓存 从原理到实践》机械工业出版社 2018 于君泽等著 

  • 【9】《WeRedis在微众银行的应用落地》 腾讯云TVP 

  • 【10】《中原银行分布式缓存实践》 原银科技 

  • 【11】 http://www.db-engines.com

     

 

作者丨工行软件开发中心
来源丨公众号: 银行科技研究社(ID:BankFintech)
dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn
最新评论
访客 2024年04月08日

如果字段的最大可能长度超过255字节,那么长度值可能…

访客 2024年03月04日

只能说作者太用心了,优秀

访客 2024年02月23日

感谢详解

访客 2024年02月20日

一般干个7-8年(即30岁左右),能做到年入40w-50w;有…

访客 2023年08月20日

230721

活动预告