MySQL系统空间上涨
系统空间上涨
一、介绍
MySQL 的 ibdata1 是一个用来构建 innodb 系统表空间的文件。该文件包含了 undo ,还包含在用户在系统表空间创建的表信息和索引数据。一般如果数据空间均为独立表空间,系统表空间出现异常增长,基本是大事务导致 undo 增长过大导致。
二、案例
实例监控显示 6.30 日中午出现系统空间上涨;可以看到期间有较多写入操作,看期间的慢 SQL 存在执行了 三百多秒的 SQL;因此判断怀疑是大事务且期间存在较多 DML SQL 导致 undo 空间上涨;
三、原理
MVCC特性要求保留当前事务版本数据可重复读,在业务频繁的场景下会导致 undo 空间暴涨
四、总结
2、建议:减少长慢查询,如上 SQL 没有后续表的关联所以会导致笛卡尔积,执行较慢;
3、可以考虑下是否要给实例进行小版本升级;云上 RDS MySQL 5.7(20220101及后续小版本)(当前小版本为rds_20200229) 可以规避掉该类情况;详见云文档:https://help.aliyun.com/document_detail/101783.html?spm=a2c4g.750001.0.i1