昨天我在经常阅读的桌子上跑了CHECK TABLE 。 我扫描了CHECK TABLE的MySQL文档以CHECK TABLE是否有任何提及的“locking”(并且没有find),同时也注意到只有SELECT特权才需要运行该命令。 因此我得出这样的结论:命令没有做任何读锁,即使在生产中也是安全的。
不幸的是,运行这个命令花了1分37秒,似乎阻止了所有的读访问。 我的问题是, CHECK TABLE做了什么读锁? 为什么我经历了一个阅读块在桌子上的任何其他原因?
谢谢
问题是肯定的是有一个很大的慢SELECT通过运行表和UPDATE单个行。 因此, CHECK TABLE被locking在单独的行上并花了很长时间。
判决; 如果要更新大量的行,切勿运行CHECK TABLE 。