赞
踩
如果在repeatable read事务隔离级别的一个事务长时间未提交,InnoDB不会去清理旧的行版本(old row versions),因为未提交的事务仍然需要看到它。当这个事务一直保持打开而不提交,就可能会导致大量旧的版本数据无法删除,从而导致undo日志暴涨,将系统表空间撑大。
通过命令SHOW INNODB STATUS的输出,可以看到当前有多少没有被清理的记录。对比下面的Purge done for trx和Trx id counter,如果差异很大,则可能是因为大量事务所导致,也可能是操作大量数据的个别事务所导致的。
------------
TRANSACTIONS
------------
Trx id counter 0 80157601
Purge done for trx’
s n:o <0 80154573 undo n:o <0 0
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。