背景:
我们在生产环境使用mysql的时候开启了slow_log 记录表,但有的时候由于记录数据过大,造成该表损坏
ERROR 1194 (HY000): Table 'slow_log' is marked as crashed and should be repaired
这时候就想着用check table 命令来看看表是否正常。于是就在生产环境执行,没想到悲剧发生了:
于是kill掉执行操作,发现回滚特别慢,最后在生产环境下我们做了主从切换,才避免了一次严重 的生产事故。
后来我们做了几个测试:
1.先执行check table ,再关闭慢查日志
结论:还是会锁
2.先关闭慢查日志 在做check table
结论:不会产生锁
结论:在做check table的时候 要把slow log 关闭,不然就会出现今天遇到的这种情况,有的时候我们执行一些操作需要在经过认证之后才可以,不然很容易踩坑。