【面试】数据库—优化—SQL语句执行很慢,如何分析

2023-12-14 11:49:30

数据库—优化—SQL语句执行很慢,如何分析

可以采用EXPLAIN 或者 DESC命令获取 MySQL 如何执行 SELECT 语句的信息

执行计划:

在这里插入图片描述

  • possible_key 当前sql可能会使用到的索引;
  • key 当前sql实际命中的索引;
  • key_len 索引占用的大小;
  • Extra 额外的优化建议:
    在这里插入图片描述
  • type 这条sql的连接的类型,性能由好到差为NULL、system、const、eq_ref、ref、range、 index、all
    • system:查询系统中的表
    • const:根据主键查询
    • eq_ref:主键索引查询或唯一索引查询
    • ref:索引查询
    • range:范围查询
    • index:索引树扫描
    • all:全盘扫描
**面试官:** 那这个SQL语句执行很慢,如何分析呢?
**候选人:** 
- 如果一条sql执行很慢的话,我们通常会使用mysql自动的执行计划explain来去查看这条sql的执行情况,比如在这里面可以通过key和key_len检查是否命中了索引,如果本身已经添加了索引,也可以判断索引是否有失效的情况;
- 第二个,可以通过type字段查看sql是否有进一步的优化空间,是否存在全索引扫描或全盘扫描;
- 第三个可以通过extra建议来判断,是否出现了回表的情况,如果出现了,可以尝试添加索引或修改返回字段来修复;

文章来源:https://blog.csdn.net/qq_42411696/article/details/134989004
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。