![mysql 和 maatkit:mk-table-checksum 会进行什么样的阻塞?](https://linux22.com/image/523104/mysql%20%E5%92%8C%20maatkit%EF%BC%9Amk-table-checksum%20%E4%BC%9A%E8%BF%9B%E8%A1%8C%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E9%98%BB%E5%A1%9E%EF%BC%9F.png)
我们有两个 MySQL 服务器,并设置了简单的主从复制。我们目前使用所有 MyISAM 表,但将来可能会迁移到 InnoDB。我们最大的表超过 2GB。
我想使用mk-表校验和工具对表运行校验和,这样我就可以确保复制正常工作。
这本书高性能 MySQL和这个mk-table-checksum 教程两者都建议使用--sleep
和--chunk-size
来帮助避免数据库阻塞。
我的问题是关于‘阻塞’:
- 这里可能发生哪种类型的阻塞?这仅仅是指表上的读锁吗?
- 如果我不指定
--chunk-size
,其中一些校验和需要 4-5 分钟。此时表是否会被锁定而无法写入?
答案1
它只是指表上的读/写锁。如果您使用的是 MySQL 内置的默认校验和实现,则使用读锁;如果您使用的是 --replicate(执行 INSERT..SELECT 语句),则使用共享读锁。