Vitess 是一个用于部署、扩展和管理大型 MySQL 实例集群的数据库解决方案。Vitess 集 MySQL 数据库的很多重要特性和 NoSQL 数据库的可扩展性于一体。它的架构设计使得用户可以像在物理机上一样在公有云或私有云架构中有效运行。它结合并扩展了许多重要的 MySQL 功能,同时兼具 NoSQL 数据库的可扩展性。
Vitess 17 近日正式发布,在这个版本中,Vitess 引入了一些重要的改进措施,以提高系统的兼容性、性能和可用性。
GA 公告
在 v15 版本中引入的 VTTablet 设置连接池功能,在这个版本中现在默认启用。该功能简化了系统设置的管理和配置,为用户提供了更加精简和便的体验。
新的基于 Tablet Throttler 的 Topology Service 现在已 GA 并默认启用。
MySQL 兼容性改进
Vitess 现在支持额外的语句,例如 Prepare
、 Execute
和 Deallocate
以及许多附加函数,包括比较运算符、数字函数、日期和时间函数、 JSON
函数等。
查询计划器经历了一些改进,带来了更有效的查询计划,特别是复杂的操作,如聚合、分组和排序,从而提高查询性能。执行查询时使用的评估引擎也得到了显著的改进,带来了超过 2 倍的性能改进。新版本还添加了一个基于新虚拟机的引擎,它将最终取代基于 AST 的引擎,并提供更大的性能改进(在 v17 中默认没有启用)。
在这个版本中,模式跟踪也得到了加强,使 Vitess 查询计划器能够快速检测到数据库模式的任何变化。这确保了查询能够保持最新的模式修改,提高了整体数据的一致性。
复制增强功能
Vitess 现在支持在与 Vitess 分片相对应的每个复制集中更有效的 MySQL 复制。
新版本已经为 noblob
binlog_row_image
类型增加了支持。如果你使用 TEXT、BLOB 或 JSON 列,这可以大大减少你的二进制日志的整体大小,减少磁盘 I/O 和存储以及网络 I/O 和相关 CPU 的开销。
新版本还为 MySQL 8.0 中新增加的二进制日志事务压缩增加了支持。Zstandard
用于压缩每个GTID
的内容,然后将压缩的事件存储到二进制日志中。这也大大减少了磁盘 I/O 和存储以及网络 I/O,不过代价是读写日志时会有一些额外的 CPU 开销。
其他
- 流量限制改进
- VTorc 改进
- VTAdmin 改进
更多详情可查看:https://github.com/vitessio/vitess/releases/tag/v17.0.0