数据库半年度盘点:20+国内外数据库重大更新及技术精要

国产数据库探索多领域技术突破海外竞争力亟需增强

2023年下半年,数据库行业有了一些新的发展特点,特别是国产厂商成为了发展主力。经过多年发展,国产数据库推广进入“深水区”,并取得不俗成绩。

从技术角度上看,国内数据库产品在多模向量、智能运维、云与云原生、数据库兼容等技术上取得了不少突破,并开始在用户落地上取得一定成果。在分布式数据库领域,一方面产品规模化落地并开始输出行业经验,加速实践过程;一方面以HTAP、多模等特性为代表,极大丰富了分布式数据库场景。同时我们也看到,国内集中式数据库领域取得了一定突破,这一架构产品逐步成熟可实现更为平滑的替代,成为部分国内用户的首选。以图、时序、向量等为代表的异构模型数据库产品开始受到更多关注,传统数据库中也开始更多支持如JSON等类型,场景化落地成为此类技术发展要点。上半年大火的ChatGPT,也开始以自主SQL生成、智能优化等功能形式在更多国内数据库产品中落地。在数据分析领域,湖仓一体、融合型数仓发展快速,也成为资本方关注热点。此外,数据安全、软硬结合、数据治理等方面也有不小的进步。

从市场角度上看,国内数据库厂商竞争加剧,头部厂商你追我赶、并驾齐驱,一些新兴厂商崭露头角、快速提高。这也从侧面印证了国内数据库行业呈现加速洗牌态势,相信未来会有一批厂商及产品经过大浪淘沙,站稳脚跟获得用户认可。从近期国内第一次推出自己的象限分析来看,头部厂商聚集现象明显,这些已成为企业支撑业务的首选。在云与云原生领域,国内云数据库产品竞争呈现白热化。今年部分厂商产品大打价格战,希望以此在国内云市场领域占据更大份额。但从国际市场来看,国内企业还处于相对滞后状态,在今年国际权威的云数据库象限分析中,多家企业已退出报告主体,仅在荣誉榜单中被提及。在这方面国内产品还需要奋起直追,从低层次的价格战尽快回归到产品能力本身,同时加速在海外布局,充分参与到全球竞争之中。

数据库产品半年度盘点

主流数据库的版本升级与更新亮点

dbaplus社群携手一众数据库行业专家,汇总、梳理并提炼出主流数据库近半年的版本更迭、性能优化、功能提升等关键信息,希望对大家了解数据库发展趋势,以及数据库选型工作有所帮助和启发。

DB-Engines数据库排行榜

以下取自2023年12月的数据,具体信息可以参考http://db-engines.com/en/ranking/,数据仅供参考。

图片图片

DB-Engines排名的数据依据5个不同的因素:

  • Google以及Bing搜索引擎的关键字搜索数量
  • Google Trends的搜索数量
  • Indeed网站中的职位搜索量
  • LinkedIn中提到关键字的个人资料数
  • Stackoverflow上相关的问题和关注者数

RDBMS

Oracle 2023下半年重大事件及技术更新

  • Oracle Database 23c已在OCI Oracle Base数据库服务上全面可用。
  • Oracle Database 19c企业版(Oracle数据库当前的长期支持版本)已通过认证,可在流行的Arm架构上用于云和本地部署。借助Ampere Altra系列处理器,Oracle数据库的用户拥有了一个高性能、高能效的架构,该架构在构建时考虑了可持续发展的需要,适合各种规模的组织。
  • 自治数据库无服务器已获得金牌高可用性架构 (MAA) 层功能认证,这意味着用户可以使用自治数据库无服务器快速部署数据库,从而实现两分钟以内的RTO,并且数据丢失几乎为零。
  • Oracle LiveLab推出新实验:Oracle 23c十大开发者特性,包括SQL Domain和Annotation等。
  • OCI中专用Exadata基础设施和Exadata Cloud@Customer的自治数据库支持Database In-Memory(数据库内存列存储)。
  • 支持使用Oracle Database Service for Azure设计多云灾难恢复解决方案。
  • Oracle Graph支持SQL属性图(在23c开发者免费版中),SQL属性图允许使用SQL 2023标准中的新语法创建和查询图。它还包括通过PGQL提供的附加功能,以及使PGQL与SQL标准紧密结合的更新。
  • Oracle推出集成矢量数据库来增强生成式AI并大幅提高开发人员的工作效率。
  • 支持Select AI - 在自治数据库上从自然语言到SQL生成。
  • Oracle GoldenGate发布23c Free版,支持将实时数据变化流式传输到GenAI(生成式AI)引擎使用的RAG向量嵌入中,以回答企业数据的问题。“GoldenGate for Big Data”更名为“GoldenGate for Distributed Applications and Analytics”,以此表明GoldenGate重新关注分布式应用程序和去中心化分析。
  • Oracle通过新的开源数据管理解决方案扩展云服务,其中包括OCI Database with PostgreSQL,OCI Cache with Redis,OpenSearch增强,Data Flow with Apache Spark增强等。
  • 多项中国客户在之前CAB中提出的功能已被实现,包括数据库自行管理数据生命周期、Exadata灵活配置、列式存储 、分片、分布式Times-Ten、基于PDB的数据卫士、区块链表和人工智能的支持等等。在新的版本中也宣布实现了使用Paxos的分布式数据库、对国产ARM架构CPU的支持,以及国密算法的支持等。

MySQL开启稳定版和创新版同时发行新阶段

2023年下半年,MySQL版本发行迎来了重要的变化,开启了稳定版和创新版同时发行的新阶段。8.0发布了两个版本,8.0.34和8.0.35,还发布了8.1和8.2的创新版。而OCI的MySQL HeatWave服务,这是一个可以同时处理事务处理、实时分析和机器学习负载的云服务,也发布了不少新特性。以下是对这些更新的简要介绍:

一、MySQL稳定版更新

1、新的密码验证系统变量:

  • 引入新变量validate_password.changed_characters_percentage以配置用户更改密码时必须变更的最小字符数。
  • 基于当前密码字符总数的百分比来确定必须更改的字符数。

2、复制变更:

  • `binlog_format` 服务器系统变量已弃用,未来可能会被删除。MySQL未来将专注于支持基于行的二进制日志记录,逐渐淘汰其他日志记录格式。
  • `binlog_transaction_dependency_tracking` 变量已弃用,未来版本可能删除。现在设置或检索此变量的值会触发警告。

3、`mysql_native_password` 身份验证插件弃用:

  • 此插件在未来版本中将被移除。
  • 现在使用此插件进行身份验证的账户会在服务器错误日志中收到弃用警告。

4、新增默认值功能:

  • `CURRENT_USER()` 可以用作某些表定义语句中的默认值,如 `VARCHAR` 和 `TEXT` 类型列,支持函数 SESSION_USER() 、 USER() 和 SYSTEM_USER() 。

5、组复制重要变更:

  • 放宽了组复制的版本要求,允许更灵活的服务器版本组合参与复制。
  • 新变更允许服务器版本8.0.35或更高版本加入同一复制组。

6、通配符授权功能弃用:

  • 该改变涉及到数据库层级的权限分配。数据库名称中的"%"和"_"作为通配符现在已经不推荐使用,未来版本可能会删除此功能。目的是让这两个符号始终被视为普通字符。另一个改变涉及主机名称"%"在权限检查时代表localhost的功能现在也不推荐使用,未来可能删除此自动匹配功能。到时候,需要明确使用localhost主机名授予权限。

7、INFORMATION_SCHEMA.PROCESSLIST弃用:

  • 推荐使用 Performance_schema的替代,与旧的SHOW PROCESSLIST 实现不同,它不需要获取mutex并且具有更好的性能。

二、MySQL创新版更新

1、EXPLAIN FORMAT=JSON输出增强,增加了 `INTO` 选项,允许将输出保存在用户变量中。

2、加强了关闭服务器过程的日志:

  • 加强了与服务器、插件和组件的启动和关闭相关的日志记录。
  • 这将有助于故障排除,尤其是在服务器关闭过程缓慢的情况下。

3、增加组复制插件的状态变量:引入了特定于组复制的新状态变量,以改善网络不稳定情况下的诊断和故障排除。

4、MySQL Shell 8.2新版本提供了便利的实例、模式和表复制功能。与以往通过文件进行的导出、导入方法相比,无需中间存储,大大提高了便利性。

5、` expire_logs_days `系统变量删除:弃用并替换为`binlog_expire_logs_seconds`。

6、MySQL企业版防火墙更新:

  • MySQL Enterprise Firewall:允许定期重新加载内存缓存中的防火墙数据表,提高了数据表管理的灵活性。此外,MySQL Enterprise Firewall以前将内部表、函数和存储过程存储在MySQL系统数据库中。现在,新的mysql_firewall_database服务器系统变量允许指定一个自定义数据库。

7、MySQL Router 8.2.0更新

读写分离功能:

  • 新功能允许将读写流量分别定向到只读和读写实例。
  • 提高了数据库操作的效率和可靠性。

MariaDB Server 10.11发布

MariaDB Server 10.11是一个长期稳定的版本,维持到2028年2月。

一、新特性 - OLTP产品线

1、【王炸功能】Alter修改表结构实现从库无延迟并行复制:通常,ALTER TABLE首先在主库上执行完毕后,才被复制并开始在从库上执行。有了这个特性,当ALTER TABLE在主库上开始执行时,它会立刻被复制并开始在从库上执行。这样可以完全消除从库的复制滞后,即可实现从库无延迟并行复制。

使用:

MariaDB> set global binlog_alter_two_phase=1;
MariaDB> set binlog_alter_two_phase=1;
MariaDB> alter table sbtest1 add index IX_pad(pad);

ALTER TABLE回车后,你可以立即用mysqlbinlog工具去查看binlog,可以看到ALTER TABLE语句已经记录在binlog文件里。

2、为SQL线程添加了global.slave_max_statement_time系统变量:以限制每次SQL thread线程长时间执行,当超过此值(以秒为单位)SQL thread线程执行的SQL将被中止。

3、MariaDB多源复制添加FOR CHANNEL关键字兼容了MySQL多源复制的语法。

4、基于GTID模式建立同步复制时,change master to语法弃用了MASTER_USE_GTID = Current_Pos选项,以支持新的MASTER_DEMOTE_TO_SLAVE选项。

5、支持在线动态调整innodb_log_file_size重置事务日志文件大小。

二、新特性 - OLAP产品线

MariaDB ColumnStore利用分布式列式存储和大规模并行处理(MPP)共享无架构扩展了MariaDB企业服务器,将其转变为独立或分布式数据仓库,用于复杂SQL查询和高级分析,而无需创建任何索引。

1、MariaDB Columnstore 10.6支持一键部署:为了简化安装过程,让用户享受更好的产品体验,MariaDB提供yum源方式部署,用户只需几条命令,即可轻松部署OLAP MPP数据仓库环境。

mysqld服务启动后,手工安装存储引擎插件即可完整部署。

MariaDB> INSTALL PLUGIN Columnstore SONAME 'ha_columnstore.so';

SQL语法使用起来跟InnoDB无任何差异。

参见官方文档:

https://mariadb.com/docs/columnstore/deploy/topologies/single-node/community-columnstore-cs10-6/#Install_ColumnStore_via_YUM_(RHEL,_CentOS)

2、MariaDB Columnstore引擎使用注意事项:【重大改变】支持与InnoDB同步复制

图片

现在,可以使用 "CHANGE MASTER TO" 命令与业务库中的InnoDB引擎建立同步复制,而无需依赖于ETL工具。通过这种方式,可以实现增量数据的同步。

PostgreSQL发布16.1新版本/更新15、14、13、12、11版本

2023年下半年,PostgreSQL主要发布了11、12、13、14、15版本系列的修正版本11.22(最终版本,不再提供更新)、12.17、13.13、14.10、15.5及16.1正式版本,其中值得关注的新特性有:

1、性能:

  • 改进了其内存和磁盘排序算法,基准测试显示,在对不同数据类型的排序时,速度可提高25%到400%不等 。使用row_number()、rank()、dense_rank() 和 count() 作为窗口函数在PostgreSQL中也有性能上的优化。
  • 使用SELECT DISTINCT的查询现在可以并行执行。

2、开发:

  • PostgreSQL包含SQL标准的MERGE命令。MERGE允许用户编写包含INSERT、UPDATE和DELETE操作的SQL语句。
  • 最新版本增加了使用正则表达式的新函数来检查字符串:regexp_count(), regexp_instr(), regexp_like(),和 regexp_substr()。
  • PostgreSQL 15还扩展了range_agg函数来聚合上一个版本引入的multirange数据类型。

3、安全特性:

  • 可以方便地使用pg_read_all_data和pg_write_all_data预定义角色为用户分配表、视图和模式的只读和只写权限。

4、监控与管理:

  • PostgreSQL将其性能提升扩展到了其vacuuming系统。本版本包括用于减少B树索引开销的优化。此版本还添加了一个vacuum的“紧急模式”,旨在防止事务ID环绕。ANALYZE用于收集数据库统计信息,基于其自身的性能改进,现在在PostgreSQL中运行速度明显更快。
  • 现在可以配置PostgreSQL的TOAST系统的压缩选项,该系统用于存储较大的数据,如文本块 或几何图形。PostgreSQL为TOAST列添加了LZ4压缩,同时保留对pglz压缩的支持。

5、BUG修复和改进:

  • 修复了GiST索引在“页面拆分”期间出现错误行为的问题可能导致后续索引搜索结果不正确的操作。 
  • 修复了B树索引错误地删除重复列的问题。
  • 修复了将批量表插入分区表的问题。
  • 修复了在步骤中具有多个分区键的哈希分区表在某些情况下可能导致崩溃的生成和运行时修剪。
  • 修复了使用READ COMMITTED模式时MERGE期间并发更新行的不一致重新检查的问题。  
  • 将pg_dump修复为转储订阅的新选项。
  • 修复pg_restore,以便选择性还原将同时包含表级和列级ACL对于选定的表。

OceanBase发布4.2.1 LTS版本

2023年,OceanBase企业版及社区版共计迭代27个版本,新增超过450项功能。11月16日,OceanBase发布一体化数据库的首个长期支持版本4.2.1 LTS。作为4.x的首个LTS版本,该版本的定位是支撑客户关键业务稳定长久运行,可在关键业务负载中放心地规模化使用。经过十余个版本的迭代打磨,新的一体化版本已经在生产环境支撑了上百个业务系统稳定运行。

1、兼容性:

OceanBase 4.2.1 LTS是面向OLTP核心场景的全功能里程碑版本。Oracle兼容性层面在复杂查询、存储过程、JSON、Database Link进一步提升,MySQL兼容模式在之前的版本已经对MySQL 5.7有很好兼容能力的基础上,4.2.1 LTS版本引入了大量MySQL 8.0的新功能兼容。

2、性能:

OLTP性能在各种规格下相比之前的版本均有较多提升。在96 Core机器上,sysbench压测的性能相比3.2.4版本提升9%到100%。新版本对于小规格有更大幅度的优化,提升比例从51%到152%不等,在read only、insert、update三种场景的性能都达到了3.2.4版本的2倍以上。OLTP分析查询场景性能有大幅度提升,新版本TPC-DS 100G性能是3.2.4版本的2.7倍,性能优化效果显著。

3、业务连续性:

新增仲裁无损容灾能力,提供创新的仲裁无损容灾,通过两副本实现RPO=0,帮助用户实现更具性价比的异地容灾。同时,面向更多场景的RTOTXT,支持用户输入自定义行分隔符。