原始问题:
mysql慢查询的原因有哪些,如何去排查慢查询问题
MySQL慢查询的原因有:
- 索引不足:没有合适的索引导致数据库在处理查询时需要进行全表扫描。
- SQL语句不合理:使用了不必要的或者性能差的SQL语句。
- 连接不当:使用了大量子查询或者太多表之间建立连接。
- 同一个会话执行太多非常耗时的SQL,例如alter table、create index等。
- 磁盘I/O性能低下,对于数据量较大的应用来说尤其如此。
- 数据库锁竞争等问题导致会出现死锁等情况。
去排查MySQL 慢 查 询 问 题 的 方法 :
- 首先从 MySQL 本身开始审核, 检测是否存在大量正在运行中的sql;
- 对mysql进行参数优化, 加快sql执行速度;
- 逐条审核 sql 语句, 并检测是否存在性能低下或者不合理情况;
- 检测是否存在大量子select或者join, 并尽可能减少;
- 在 select 语句中加上limit ,并注意limit 由哪列开始;
- .对 select 语句中加上order by ,并注意order by 由哪列开始; 7 .根据实际情况适当加上index ;
Prev:MySQL索引存储结构,如何知道SQL走了索引