一般来说TRUNCATE TABLE是毫秒级的命令,不会受到数据量的影响,但是当你要TRUNCATE TABLE的表还有事务锁未提交的时候,就会出现TRUNCATE TABLE执行太慢(其实就是无尽的执行,永远不会结束)。
这是因为事务没有正常结束导致的事务锁,需要手动kill掉
#查询当前未提交的事务锁
SELECT * FROM information_schema.INNODB_TRX
#根据这个事务的线程ID(trx_mysql_thread_id),用kill命里杀死
kill 94362
之后你再执行TRUNCATE TABLE就立马成功了。