我有一个主服务器,我想将 UPDATE 等操作修改为 LOW_PRIORITY,以便它们不会阻止 SELECT 等。这对于最终用户可见的行为更有利。
我有一台从属服务器,我在该服务器上进行批处理,并且我并不关心 SELECT 优先于 UPDATE。事实上,由于从属服务器使用 UPDATE 并以 LOW_PRIORITY 执行它们,并且复制是单线程的,因此批处理往往会延迟复制。
理想情况下,在这个从属服务器上,我会告诉 MySQL 将 UPDATE 优先级提高到 SELECT 之上,这样两个服务器就能保持同步,但代价是稍微延迟我的批处理操作。
答案1
使用 --skip-innodb、--low-priority-updates 和 --delay-key-write=ALL 选项启动从属服务器,以提高从属服务器端的速度。在这种情况下,从属服务器使用非事务性 MyISAM 表而不是 InnoDB 表,通过消除事务开销来提高速度。
参考:MySQL 手册