关系数据库的事务功能是很强大的,表级的原子性操作保障了很多功能的完整性,但是也有不好之处,比如对于大规模的读写操作可能会产生一些冲突
其中锁死问题就是之一,mysql truncate 表的时候可能出现的Waiting for table metadata lock就是说明表被锁死了,必须要解决,那么怎样解决呢?
先确认操作是不是被锁住了,有可能只是查询命令太大,时间比较长,用show processlis语句查看下里面操作
找到自己操作表,看看后面的info内容,如果有Waiting for table metadata lock就说明锁冲突了,这时候赶紧用kill语句干掉前面标记的id
在show processlist一下就发现已经没了,这时候之前阻塞的操作会自动失败,锁死问题也就解决了