云数据库 RDS-复杂查询造成磁盘满:原因分析

时间:2023-11-01 16:16:21

原因分析

MySQL内部在执行复杂SQL时,会借助临时表进行分组(group by)、排序(order by)、去重(distinct)、Union等操作,当内存空间不够时,便会使用磁盘空间。

排查思路:

  1. 因为其他只读实例和备机磁盘占用空间正常,且是偶尔出现,说明该实例磁盘占用高,与承载的业务相关。
  2. 获取该实例的慢日志,分析磁盘占用高期间,是否有对应的慢SQL。
  3. 如果有慢SQL,执行explain [慢SQL语句],分析相应慢SQL语句。
  4. 观察explain语句输出的extra列,是否有using temporary、using filesort,如果有,说明该语句用到了临时表或临时文件,数据量大的情况下,会导致磁盘占用高。
support.huaweicloud.com/trouble-rds/rds_12_0060.html