💡
原文英文,约3400词,阅读约需13分钟。
📝
内容提要
新建的InnoDB Cluster即使未投入生产,仍会因MySQL Router每秒刷新集群元数据而产生大量二进制日志写入。为减少开销,可将binlog_row_image设置为MINIMAL或启用use_gr_notifications功能。
🎯
关键要点
- 新建的InnoDB Cluster即使未投入生产,仍会因MySQL Router每秒刷新集群元数据而产生大量二进制日志写入。
- MySQL Router将集群状态和配置信息存储在同一集群的专用元数据库中,默认每秒刷新一次。
- 每次刷新都会更新mysql_innodb_cluster_metadata.routers表,即使集群状态没有变化。
- 使用ROW二进制格式时,更新一列实际上会导致整行被写入两次,从而增加二进制日志的开销。
- MySQL Router 8.4版本引入了新的元数据存储方式,导致二进制日志开销增加。
- 可以通过将binlog_row_image设置为MINIMAL来减少二进制日志的写入量。
- 启用use_gr_notifications功能可以让Group Replication集群异步通知路由器,从而减少不必要的元数据刷新。
- 启用use_gr_notifications后,路由器的元数据缓存刷新将仅在实际发生集群事件时进行,显著降低开销。
- 在默认设置下运行InnoDB Cluster可能会带来意外的写入开销,建议启用use_gr_notifications以最小化开销。
❓
延伸问答
MySQL Router 8.4如何影响InnoDB Cluster的二进制日志写入?
MySQL Router 8.4会每秒刷新集群元数据,导致即使在未投入生产的情况下也会产生大量二进制日志写入。
如何减少MySQL Router的二进制日志开销?
可以通过将binlog_row_image设置为MINIMAL或启用use_gr_notifications功能来减少二进制日志的写入量。
启用use_gr_notifications功能有什么好处?
启用use_gr_notifications后,路由器的元数据缓存刷新仅在实际发生集群事件时进行,从而显著降低开销。
MySQL Router 8.4的新元数据存储方式有什么变化?
MySQL Router 8.4将完整的路由器配置存储在InnoDB Cluster元数据架构中,并以JSON格式存储,导致二进制日志开销增加。
MySQL Router的元数据刷新机制是怎样的?
MySQL Router默认每秒刷新一次元数据,更新mysql_innodb_cluster_metadata.routers表,即使集群状态没有变化。
使用ROW二进制格式时,更新一列会有什么影响?
使用ROW二进制格式时,更新一列会导致整行被写入两次,从而增加二进制日志的开销。
🏷️
标签
➡️