跳到主要内容

数据目录占用空间过大

数据目录通常包含数据文件、binlog、错误日志等,如果空间被占满,会导致数据库挂起,数据库无法提供对外服务。日常运维中,应加强对空间使用率的监控。

大事务

如果出现大事务,就会产生大量的binlog,若binlog cache大小不够,就会暂存到磁盘临时文件。大事务不仅对磁盘空间产生影响,还会让主从复制有很大的延迟。因此,生产环境尽量将大事务拆分成多个小事务来处理。

笛卡尔积连接

SQL编写不规范,如多表关联时缺少关联条件,那么就会产生笛卡尔积。如果关联的表都很大,临时表空间就会被撑爆。因此,编写完一个SQL后需要养成查看SQL执行计划的习惯,如果执行计划中出现"Using join buffer (Block Nested Loop)",就需要检查两表关联中,到底是被驱动表的关联条件缺失索引还是缺失关联条件。 注:重启实例可以释放临时表空间。

子查询、分组排序

子查询和分组排序会使用临时表缓存中间结果集,如果内存临时表不够,会暂存到磁盘临时文件。