如何根据Explain执行计划对数据库查询语句进行优化

Posted 杀手不太冷!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据Explain执行计划对数据库查询语句进行优化相关的知识,希望对你有一定的参考价值。

文章目录

如何根据Explain执行计划对数据库查询语句进行优化

官网地址

mysql官网地址:https://dev.mysql.com/doc/refman/5.7/en/explain-output.html

如下图:

执行计划输出的列

执行计划中的type列

type列的值有很多,如下图:

首先来说一下效率最低的type值ALL

如果是All的话,那么在数据库表进行查询的时候,会对全表进行查询,会查询表里面的全部的数据,如下图:

All可以优化到Range提升效率

如果我们的执行计划中的type的值是All,那么它会查询全表数据,它的执行效率其实是很低的,那么我们就需要优化它的效率,可以怎么优化呢?我们可以通过加一个索引的方式,从而优化查询效率到Range。如下图:

type的值等于Const

const的效率非常的高,因为它最多只会匹配到一行,它也必须要用到索引,然后筛选索引等于某个值的情况,索引也可以当成主键,一个表中最多有一个值。所以,我们const最多只能查询出来一行数据,查询到此处之后,后续的数据就不再查询了,如下图:

type的值为eq_ref和ref

以上是关于如何根据Explain执行计划对数据库查询语句进行优化的主要内容,如果未能解决你的问题,请参考以下文章

MySQL执行计划

MySQL——通过EXPLAIN分析SQL的执行计划

MySQL EXPLAIN 命令: 查看查询执行计划

mysql explain执行计划

MySQL执行计划都有那些规划?

MySQL explain根据查询计划去优化SQL语句