MySQL 8.2 的读写分离功能正式发布
Oracle 近日宣布了 MySQL 8.2 的正式发布,该版本引入了备受期待的读写分离(Read/Write Splitting)功能。这一功能旨在优化数据库的性能和可扩展性,无需对应用程序进行任何修改。
读写分离功能简介
读写分离允许应用程序透明地将所有写操作定向到读写(主节点或源)实例,而将所有读操作定向到只读实例。这些只读实例可以是 InnoDB 集群中的从节点,或者副本集群中的主节点或从节点。MySQL 社区经理 Frederic Descamps 解释说:
在大规模应用中,我们通常在副本之间分配读操作,但这需要在应用程序中进行管理:将写操作指向某个地方,而将读操作指向另一个地方。MySQL 8.2 中,MySQL Router 现在能够识别读写操作,并将它们分别路由到 InnoDB 集群中的主节点(写操作)或从节点(读操作)。
使用读写分离功能时,每个客户端会话可以与一个读写和一个只读目标进行通信,路由器会将每个查询分类为读或写,并将其定向到相应的后端。
社区反应与疑问
Percona 创始人兼开源倡导者 Peter Zaitsev 对此功能表示赞赏,但也提出了疑问:
MySQL 8.2 的这个功能很棒!但尚不清楚在这种情况下,读操作的一致性级别是否有保证。是否会读取到过时的数据?如果是,会有多过时?
PingCAP 的软件架构师 Sunny Bains 也补充道:
MySQL 组复制提供了时间线一致性,除非路由器能够跟踪副本之间的一致性,否则路由器无法做得更好。这似乎可行,但将需要通过轮询进行往返,或者集群向路由器发送某种类型的事件通知。
连接与路由
通过读写端口(默认 6450)连接到 MySQL 时,如果执行读操作,连接将到达副本(从节点);如果开始事务,连接将到达复制源(主节点)。
版本更新与新功能
今年早些时候,Oracle 改变了 MySQL 的版本控制模式,引入了创新版本和长期支持(LTS)版本。MySQL 8.2.0 是最新的季度创新版本,包含了错误修复、安全补丁和新功能。改进包括:
- 集合操作的哈希表优化
- MySQL Enterprise Firewall 的增强
- 支持智能卡、安全密钥和生物识别阅读器等设备的 WebAuthn 认证方法
总结
MySQL 8.2 的读写分离功能被认为是优化数据库性能和可扩展性的重要工具,不仅提升了用户体验,还简化了数据库的管理和部署。MySQL 8.2.0 已在 Oracle 官网上提供下载。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。