【数据库篇02】mysql优化-SQL语句执行很慢,如何分析呢?

59 阅读1分钟

SQL语句很慢,如何分析呢?

  • 聚合查询
  • 多表查询
  • 表数据量很大查询
  • 深度分页查询
    聚合查询:我们可以新增一个临时表来解决
    多表查询:我们可试着优化SQL语句的结构了
    表数据量很大查询:我们可以添加索引,但有时候已经添加了索引,执行依然很慢,我们要分析这条SQL,通过SQL的执行计划(explain),我们可以分析下这条SQL具体原因

image.png

key 当前SQL实际命中的索引 key_len索引占用的大小 extra 额外的优化建议

SQL查询是否进行了回表

image.png

type:sql的连接类型,由好到差:NULL、system、const、eq_ref、ref、range、index、all

  • system:查询系统中的表
  • const:主键查询
  • eq_ref:主键索引查询或唯一索引查询
  • ref:索引查询
  • range:范围查询
  • index:索引树查询(遍历索引树,效率不高)
  • all:全盘查询