当前位置:   article > 正文

如何做慢查询优化?_优化慢查询

优化慢查询

如何做慢查询优化?

这个问题可以说是一个高频问题,总是被问到,今天来总结下这个问题。

慢查询,就是 SQL 查询中耗时比较大的一类查询,MySQL 提供了慢查询日志 slow_query_log,

它会记录耗时大于我们设置的阈值的查询语句

set global slow_query_log = 1

如果我们想调优,把未走索引的查询也记录:

log_queries_not_using_indexes

1、慢查询日志的内容

在这里插入图片描述

2、为什么会出现慢查询,或者说慢查询的原因

  • 等待时间长:锁的使用粒度过大、或者说出现死锁等,导致Lock_time 过长
  • 执行时间长:索引失效、没有覆盖索引、关联查询太多 join、服务器调优及各个参数的设置

3、慢查询的优化思路

在这里插入图片描述

在这里插入图片描述

如何合理设计并利用索引

首先要考虑的是,不适合创建索引的列,就不要创建索引了,比如区分度不大的列、频繁更新的列、没有被 order by、group by、where 子句用到的。

其次是要考虑索引失效的情况:

  • 联合索引没有符合最左匹配原则
  • 对索引使用左或左右模糊查询
  • 对索引使用函数
  • 对索引进行表达式计算
  • or条件后面的列没有用索引
    对索引使用函数
  • 对索引进行表达式计算
  • or条件后面的列没有用索引
  • 索引的类型转换导致索引失效
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/528743
推荐阅读
相关标签
  

闽ICP备14008679号