0

现在我在一个 MySQL 实例中发现了一些奇怪的东西。

backgroup 我们使用 SSD 存储 datafile ,但是 binlog 文件存储在 SAS 磁盘中 sync_binlog=0 TPS 4000 insert+update per second max_binlog_size 500M

当 MySQL 创建新的 binlog 文件时,我们发现一些事务提交语句会写入 slow.log

当我设置 sync_binlog 0->2000->1000->200->100 时。最后,当 sync_binlog=0 时,commit 语句在 slow.log 中消失。

希望对你有所帮助。我真的很感激。

4

1 回答 1

1

解决方案很简单。当您使用 sync_binlog=1 时,发生的事情就像日志也被写入磁盘而不使用文件系统支持。但只有提交的事务进入日志。但是现在您出现了sync_binlog=0,这意味着您不想在磁盘上保留已提交事务的记录,这意味着您依赖于操作系统的文件系统。因此,如果您的自动提交关闭,那么您只会在日志中获取已提交的事务,否则所有事务(无论它们是否已提交)都将进入日志。

因此,您可能正在使用带有自动提交“on”的mysql,并且所有事务都进入日志,而您只会进入缓慢且未提交的事务。

希望这会有所帮助

于 2013-08-14T06:47:00.710 回答