年,关于MySQL的新特性、新版本消息不绝于耳:
,10月,MySQL8.0.18发布,支持HASHJOIN;
,4月,MySQL8.0.11发布,实现比MySQL5.7快2倍的速度;
MySQL一直是互联网数据内核的主宰,但是在经历从互联网到企业级的转变中,却是困难重重。然而在年,越来越多的企业级客户开始在业务核心中使用MySQL数据库,这是一个标志性的转变,代表MySQL打开了更广泛的企业市场,而MySQL的技术变革也正在以更快的步伐去满足更广泛的用户需求。
毫无疑问,MySQL是当今最流行的数据库和最流行的开源数据库,在DB-Engines上,MySQL的流行度几乎和Oracle并驾齐驱,但是考虑到Oracle很多时候代表的不仅仅是Oracle数据库(更多的是代表一家公司),而MySQL就仅指MySQL数据库,所以事实上,即便在指标上,MySQL数据库可能早已凌驾于榜首之上。
而在DB-Engines的榜单上,还有一系列的独立数据库品牌是在MySQL的基础上发展而来的,MySQL的生态庞大而无以伦比。
在中国的国产数据库领域,几乎所有的云厂商都有基于MySQL的RDS提供,而更进一步的,头部的IT厂商也都几乎基于MySQL发展出独立的解决方案或产品,这进一步推动了国内MySQL的广泛应用和发展。接下来让我们细数一下那些改变数据库核心应用的MySQL数据库们。
POLARDBforMySQL
PolarDBforMySQL,POLARDB是阿里云自主研发的,与MySQL完全兼容的云托管数据库产品,采用了分布式存储引擎、计算和存储分离的架构,单库最多可扩展到16个节点,存储容量最高可达TB。PolarDB架构的设计特点包括:一写多读,计算与存储分离,读写分离,高速链路互联,共享分布式存储,数据多副本、支持Parallel-Raft协议。POLARDB在年发布了POLARDBMySQL8.0兼容版,是第一个兼容MySQL8.0版本的云原生数据库,据悉POLARDB的高性能存储引擎X-Engine即将发布,X-Engine存储引擎具有高性能和高压缩率,经历了年双11的实战考验。根据官方信息,阿里云POLARDB8.0版本提供了更多的内核引擎功能,比如:独立可扩展的共享BufferPool、行级压缩、全球实例支持、并行DDL、分区表自建索引以及自建分区表等。并行查询是POLARDB8.0版本推出的一个特性,在TPCHG数据量的情况下,使用POLARDB并行查询时70%的查询可以被加速,40%的加速比超过10倍。在未来,POLARDB会实现自动的DOP以及ResourceManager,并将支持Subquery、GIS和Blob以及Procedure等。通过以上的介绍,大家可以看到云数据库的发展速度,并行查询、高压缩比的存储引擎,这些都会为用户带来实际的收益。并行DDL、分区表自建索引等特性,其实已经将MySQL的特性极大的拉近到Oracle数据库的层面上来。我非常期待阿里云的X-Engine引擎,众所周知,Oracle在Exadata中提供了强大的混合列压缩特性,但是不开放给非一体机用户,在开源的世界里,自由的改造和创新为数据库带来了无以伦比的活力!腾讯TDSQL
腾讯的TDSQL,全称TencentDistributedmySQL-腾讯分布式MySQL,是针对金融联机交易场景的高一致性数据库解决方案。年9月12日,腾讯云官方宣布了TDSQL在张家港农村商业银行正式落地,成为国内首个被银行在传统核心业务场景中使用的国产数据库。根据报道,在迁移之前,张家港行使用的是Sybase数据库,迁移的核心系统的数据量在TB级,包括了账户、账目、流水、账单、日志等数据。核心系统主要分为两大部分,一个为交易子系统,覆盖银行卡、资金管理等等;另一个为会计子系统,主要是资金的交易分离、清算总账。年8月16日下午6点,张家港行开始进行新核心系统的上线工作,数据库割接通过原有数据的导出、TDSQL数据的导入以及中间数据的加工校验。48小时之后整个改造工作结束。新核心在至今一个多月的时间里,数据库运行稳定各项指标均正常,即使业务高峰期数据库也维持极低负载。接下来我们来简单了解一下TDSQL的架构。TDSQL是由决策调度集群/GTM,SQLEngine、数据存储层等核心组件组成,每个模块都基于分布式架构设计,可以实现快速扩展,无缝切换,实时故障恢复等,通过这一架构,TDSQL的Noshard、Shard、TDSpark实例可以混合部署在同一集群中。TDSQL的核心思想有两个:数据的复制(Replica)和分片(Sharding),其中replica配合故障的检测和切换,解决可用性问题;Sharding配合集群资源调度、访问路由管理等,解决容量伸缩问题。在最终实现上,TDSQL由Scheduler、Gateway、Agent三个核心组件加上MySQL组成:TDSQL在SQLENGINE实现了基于代价的查询引擎(CBO),实现了基于shardkey下推,索引条件下推,驱动表结果下推,null下推,子查询下推,leftjoin转化成innerjoin等,以提供更好的分布式查询的能力,支撑金融交易的关联操作。TDSQL仍然是通过经典的XA两阶段提交加两阶段封锁协议实现了强分布式事务的语义,在使用语法上与MySQL完全一样,即后端的分布式事务处理对业务使用方是完全不感知,以保证兼容性。张家港农村商业银行的项目实施过程分为两个阶段,功能性改造,性能优化。整个改造过程是从简单到复杂,先从高频交易入手,集中处理与高频交易相关的业务以及子系统,然后是跑批类交易。从集中式架构转变到分布式架构,要求所有的库表都要重新设计,这是所有数据库做分布式改造时都无法避免的问题。如何根据全局业务,选择最佳的数据分布策略,是分布式改造需要面对的首要问题。即使确定了分片关键字,还需要对该分片关键字以及索引做持续优化调整以寻求最佳实践。兼容性差异,包括两部分:Oracle生态与MySQL生态、集中式架构与分布式架构的差异,TDSQL做了大量对Oracle语法兼容性的优化。对于一些不太适合分布式场景下的使用特性如:存储过程、视图、触发器等,将更合适放到应用层的部分逻辑上移,实现了更为彻底的分布式架构,极大提升了整体的水平扩展性。针对复杂SQL问题,业务侧通过调整分片关键字和复杂SQL拆分两个方面做优化,让SQL尽可能限制在一个数据节点内。针对无法避免跨多个数据节点的表关联,TDSQL做了大量复杂SQL的优化,如:子查询上提、左连接消除、丰富下推逻辑以及基于统计信息的条件推导逻辑等,尽可能提高处理这种复杂sql的性能。TDSQL还承载了微众银行99%以上线上数据库业务,微众和腾讯云合作的TDSQL智能运维-扁鹊项目,已在微众银行灰度上线,可以实时分析TDSQL的运行状态和性能问题,是智能化运维方面的有益探索。中兴GoldenDB
中兴GoldenDB数据库。它是中兴面向金融领域,自主研发的一款基于MySQL的分布式数据库。中信银行信用卡核心业务将于年下半年全部迁移到GoldenDB数据库上,承载起核心金融的重要使命。GoldenDB的特性描述包括(来自