explain语法

ads

点击上方追梦 Java”关注,一起追梦!



在之前 sql 语句执行过程的内容中,我们提到了查询优化器的内容,下面对其进行详细说明。


explain 用于获取查询执行计划(即有关MySQL如何执行查询的说明)。


explain 经常与 SELECT,DELETE,INSERT,REPLACE 和 UPDATE 语句一起使用,用来分析这些 sql 语句的执行计划,当 explain 与可解释的语句一起使用时,MySQL 将显示来自优化器的有关语句执行计划的信息。也就是说,MySQL 解释了它将如何处理该语句。

1、优化器常用优化类型


优化器内部为了找到最优的执行计划,查询优化器会对一些查询进行优化,一般可以优化的sql类型如下:

2、explain 的用法介绍


explain 的用法非常简单,在你的 sql 语句前加上 explain,点击执行,就可以看到你的 sql 语句的执行计划。

explain select * from user where id = 1001;--为了方便查看,可以在语句后面加一个Gexplain select * from user where id = 1001 G;

explain 用于获取执行计划信息的信息如下,需要特别关注的内容如下:

3、连接类型 type 的常用值说明


const:表示通过主键或者唯一索引的列与一个常数值进行比较时会使用 const 连接,查询效率最高,比如:

SELECT * FROM table_name WHERE primary_key=1;

eq_ref:表示唯一索引扫描,对于每个索引列在表中只有一条记录与之匹配,查询效率也很高,比如:

SELECT * FROM ref_table,other_tableWHERE ref_table.key_column=other_table.column;

ref :表示非唯一索引扫描,也就是说每个索引列在表中不只单条记录与之匹配,也是索引查询,效率也算高;

range:只检索给定范围的记录,也是使用索引来选择行,平常开发中至少要达到 range 的级别,否则需要优化;

SELECT * FROM table_name WHERE key_column BETWEEN 10 and 20;

index:索引全表扫描,按索引顺序扫描一遍从而查找数据行,效率较低,除非 Uses index 出现在 Extra列中。

All:全表扫描,遍历全表从而查找数据行,效率最低,一般需要通过添加索引来避免这种情况。

4、附加信息 Extra 的常用值说明


Using filesort:使用了文件进行排序,效率较低

Using index:使用了覆盖索引,效率较高

Using temporary:使用了临时表

Using where:使用了 where 条件

后面将为大家介绍 MySQL 服务器的调优策略。

有用的话点个在

最后编辑于:2024/1/10 拔丝英语网

admin-avatar

英语作文代写、国外视频下载

高质量学习资料分享

admin@buzzrecipe.com