MySQL之Explain关键字解析
2021/11/5 2:10:13
本文主要是介绍MySQL之Explain关键字解析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Extra
Using index
- 表示相应的select操作中使用了覆盖索引,避免访问了表的数据行,效率不错!
- 如果同时出现using where,表明索引被用来执行索引键值查找。
- 如果没有同时出现using where,表明索引用来读取数据而非执行查找动作。
覆盖索引
select的数据列只需要从索引中就能够获取到,不比读取数据行,MySQL可以利用索引返回select列表中的字段,而不必根据索引再次读取数据文件,换句话说:查询列要被所建的索引覆盖。
比如:
* 已知现有索引:idx_col1_col2_col3
* 现有查询语句:select col1, col2 from t1
* 在这条语句中,select查询的列为col1和col2,而索引idx_col1_col2_col3中恰好包含col1和col2,所以这条语句可以实现索引覆盖。
using where
表明使用了where过滤
using join buffer
使用了连接缓存,当语句中多次出现join连接时,会出现此关键字。此时可以适当调大join buffer缓冲区的大小。
impossible where
where子句的值总是false,不能用来获取任何元组。
例如:select * from people where name = '张三' and name = '李四';
在这条SQL中,where的条件是name即等于张三有等于李四,一个人的名字不可能存在这种情况,此时MySQL会给出impossible where的关键字,表明where后的条件总是false。
select table optimized away
在没有group by子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM存储引擎优化COUNT(*)操作,不必等到执行阶段再进行计算,查询执行计划生成的阶段即完成优化
distinct
优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作
这篇关于MySQL之Explain关键字解析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-02MySQL 3主集群搭建
- 2024-12-25如何部署MySQL集群资料:新手入门教程
- 2024-12-24MySQL集群部署资料:新手入门教程
- 2024-12-24MySQL集群资料详解:新手入门教程
- 2024-12-24MySQL集群部署入门教程
- 2024-12-24部署MySQL集群学习:新手入门教程
- 2024-12-24部署MySQL集群入门:一步一步搭建指南
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解