1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

SQL语句引起的空间暴增分析

问题背景

本案例中MySQL实例占用空间暴涨,空间使用率达到90%。数据文件和binlog文件占用空间不高,也未进行大量数据删除。通过监控,发现主机负载和CPU使用情况较正常压力值高,IO已经打满。查看数据库情况,发现数据库活跃连接达到近40,每秒请求量却比平常低。分析慢日志文件,发现某SQL语句存在问题,消耗大量主机资源。

SQL语句引起的空间暴增分析

问题分析

造成空间暴涨的原因是进行了大量磁盘临时表的操作。数据库处于阻塞状态,等待后台的大量IO操作完成。临时表的产生主要是因为SQL语句中排序字段选择不合适导致,产生了大量内存放不下而置换至磁盘的临时表。监控发现主机负载和CPU使用情况较正常压力值高,IO已经打满。总结数据库临时表的产生,特别是磁盘临时表,如果短时间内出现大量,导致主机空间使用率暴涨达到100%,那么相应数据库就会被hang住,无法再对外提供服务。

解决方案

为避免此情况的发生,除了SQL优化外,也要定期进行主机与数据库空间的清理,时刻保持空间使用率相对比较低。定期检查SQL语句的优化情况,更改排序字段和数据量,降低临时表产生的概率。有效利用告警系统,及时发现并解决数据库性能问题。

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5880.html