MySQL 5.7升级到8.0,出现复制延迟。复制延迟相关的版本间差异的信息有哪些?
在MySQL 8.0中,一些参数的默认值发生了变化。以下设置会影响磁盘I/O使用,并可能导致一些复制延迟。
1. log_replica_updates
从MySQL 8.0开始,默认情况下启用log_replica_updates。
如果启用了log_replica_updates设置,副本会将复制导致的更新写入其自己的二进制日志。这可能会增加磁盘I/O。
2. sync_binlog
sync_binlog默认值为1,这是从MySQL 5.7更改而来的,由于频繁的(每次提交)二进制日志刷新,这也会增加磁盘I/O。
3. innodb_flush_neighbors
在MySQL 5.7或更早版本中,默认值为1。从MySQL 8.0开始,默认值更改为0。
如果您使用SSD作为数据磁盘,设置0不是问题,因为SSD擅长随机磁盘访问。另一方面,如果您使用硬盘作为数据磁盘,将此选项设置为0将导致更多的随机磁盘访问,硬盘可能会受到影响。因此,如果您使用的是硬盘,请将设置更改为1。
- 详情请参考以下页面。
- https://dev.mysql.com/doc/refman/8.0/en/optimizing-innodb-diskio.html