Mysql面试题之这条sql执行很慢,你是如何分析的?

sql执行很慢的原因首先要去看sql的结构举例如下:

    1.聚合查询(使用到了mysql内置的聚合函数):一般我们处理的方案是新增临时表来解决。

    2.多表查询(比如我们在做业务逻辑好几十张表在做查询时):需要优化sql的结构,比如使用联合索引等等一些方案.

   3.表数据量过大:我们这里值得是单表而言,一般就是添加索引即可解决.

 上面介绍完各种类型,我们在介绍下几个重要的参数:

key和key_len这两个参数一般放在一起它们的作用是看这条sql是否走了索引.

type:表示这条sql连接类型的好坏一般我们建议优化到const之前.也就是主键查询.这里性能最差的就是all了,它指的是全表扫描我们一般不建议使用.

Extra:这里面又2个参数:

                         其一:using where和using index查看使用了索引,需要的数据在索引列中能找到,不需要回表查询

                        其二:using condition:使用了索引但不需要回表查询.

综上所述:我们一般分析的步骤是在查询sql的语句之前加入explain,根据查询结果的详情分析,再结合上面的参数我们一般就能确定sql的原因和优化.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值