升级到 MySQL 5.7 后,执行 SQL 查询会填满可用存储空间。
升级是通过 AWS 控制台执行的,选择自动程序将 RDS 从 MySQL 5.6.27 升级到 MySQL 5.7.11。但是,在 mysql5.6 上流畅运行的相同查询耗尽了 mysql5.7 实例上的可用文件系统空间。
对该问题进行了研究,发现该/rdsdbdata/db/innodb/ibtmp1
文件已扩展到使用所有可用存储空间。行为如图所示。
mysql5.6 和 mysql5.7 之间执行计划的额外比较显示,即使在两个数据库版本之间调整了 optimizer_switch 参数之后,5.7 包含的 2.56 亿条记录仍存在差异。
一些证据显示出与用户定义变量的使用有关,但不是决定性的。例如,SELECT 语句包括一个@count := @count + 1
属性。
问题:如何缓解 MySQL 5.7 更改执行计划从而填满 RDS 实例的可用存储空间的事实。