如何解决MySQL IOPS使用率高?

如何解决MySQL IOPS使用率高?

什么原因导致MySQL IOPS使用率高?
1、实例内存满足不了缓存数据或排序等需要,导致产生大量的物理 IO。
2、查询执行效率低,扫描过多数据行。
解决方法
您可以通过如下任意一种途径或结合使用两种途径来解决 IOPS 使用率高的的问题:
生成实例当前诊断报告(推荐方式)。
终止问题查询。
通过 SQL 窗口优化功能来优化查询。

生成实例当前诊断报告(推荐方式)操作步骤:
1、在 DMS 控制台上登录数据库。
2、选择性能 诊断报告。
3、单击发起诊断,即可创建一个针对当前实例运行情况的报告
4、单击查看报告,查看其中的 SQL 优化、会话列表、慢 SQL 汇总部分
5、根据 SQL 优化中的建议,做出相应优化。如上述步骤中的建议 ALTER TABLE large_tab_03 ADD INDEX IDX_COL01(COL01) ,即为在表 large_tab_03 字段 col01 上添加索引 idx_col01(col01)。
6、索引添加完毕后,查询执行就会快速完成,IOPS 使用率即会降低。

终止问题查询
您可以通过 DMS 控制台上的实例会话或命令查询和终止问题查询,建议您将物理读(Physical_sync_read 和 Physical_async_read)高的查询终止掉。
A、通过 SQL 窗口优化功能来优化查询操作步骤:
1、在 DMS 控制台上登录数据库。
2、选择性能 实例会话
3、单击 Kill 会话,来终止问题查询
B、通过命令终止问题查询操作步骤:
1、通过 MySQL 命令行工具连接实例。
2、通过如下方式,查看会话情况,来确定问题会话。
通过执行 show processlist; 命令查询
若当前执行会话比较多,通过执行 show full processlist; 命令来查询
3、执行 kill Id 命令,终止相关会话。

通过 SQL 窗口优化功能来优化查询操作步骤:
1、在 DMS 控制台上登录数据库。
2、选择 SQL 操作 SQL 窗口。
3、单击优化,获取诊断结果。
4、根据诊断结果中的建议,来优化查询

标签