如何解决Innodb中undo表空间不清除数据的问题

分类:编程技术 时间:2024-02-20 15:49 浏览:0 评论:0
0
本文主要讲解《如何解决Innodb中undo表空间不清除数据的问题》。文章中的讲解内容简单明了,易学易懂。请大家按照小编的思路慢慢深入,一起研究学习《如何解决Innodb中undo表空间不清除数据的问题》!

1.问题

我使用的5.7的Mysql undo cleanup参数已经开启。为什么undo表空间没有清理干净?

2.分析

这种问题应该是由于大查询的存在造成的。一位朋友杀死了大查询后,撤消仍然没有清理干净。

------------交易------------Trx id 计数器 33083158036Purge done for trx's n:o < 31961212290 undo n:o < 0 state: runningHistory list length 560689581 作者微信:**gp_22389860**

我们可以大致了解到,560689581个事物的UNDO还没有被释放。
我们知道undo的分配是cy明确分配。清理操作应等到释放操作完成。从函数trx_purge_truncate_history中可以大致看出来(我只是粗略地看了一下)。仅当所有撤消标头和回滚标头均为 .只有这样才能清除整个表空间。

我请朋友检查了当前purge线程的压力如下:

虽然没有做pstack的时候,但是可以猜测purge线程正在清理这些undo记录。清理完成后应释放撤消表空间。然后我查看了show引擎中关于undo的信息如下:

感谢您的阅读。以上就是《如何解决Innodb中undo表空间不清除数据的问题》内容,经过文章的学习,相信大家对Innodb中如何解决undo有了一些想法,对这个问题有了更深入的了解表空间不清理数据,并且具体用法还需要实践验证。在此,小编将为大家推送更多相关知识点的文章,欢迎关注!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何解决Innodb中undo表空间不清除数据的问题

用户评论