昨天,我在一张经常阅读的桌子上运行CHECK TABLE。我扫描了的MySQL文档CHECK TABLE中提到的“锁”(但没有发现),还注意到运行该命令只需要SELECT特权。因此,我得出结论,该命令没有执行任何读锁,即使在生产中运行也是安全的。
可悲的是,运行命令花费了1分37秒的时间,似乎阻止了所有的读取访问。我的问题是,CHECK TABLE做任何读锁吗?我为什么在桌子上遇到一个读块,还有其他的原因吗?
谢谢
发布于 2011-01-11 10:44:32
最明显的问题是,在表中运行一个大的、缓慢的SELECT,并且UPDATE在各个行中运行。因此,CHECK TABLE被锁在各个行上,花费了很长时间。
结论:如果要更新大量行,就不要运行CHECK TABLE。
https://serverfault.com/questions/188947
复制相似问题