mysql explain possible_key 和key 有什么区别
时间: 2023-08-09 11:08:27 浏览: 82
在MySQL的执行计划(EXPLAIN)中,"possible_keys"和"key"都是与索引有关的字段,但它们有一些区别。
1. possible_keys: "possible_keys"字段列出了可能被查询使用的索引。它显示了查询条件可以利用的索引列表。这些索引可以帮助优化查询性能,但不一定会被实际选择使用。
2. key: "key"字段表示实际被查询选择使用的索引。当查询执行时,MySQL优化器会选择其中一个可能的索引来执行查询。"key"字段显示了被选择的索引,它是实际用于查询操作的索引。
通常情况下,如果"key"字段显示了一个索引,则表示查询在执行过程中确实使用了这个索引。而如果"key"字段是NULL,表示查询没有使用任何索引,可能会导致全表扫描。
需要注意的是,即使"possible_keys"和"key"字段都显示了索引,也并不意味着查询一定能够充分利用索引。其他因素,如查询条件、索引选择性、数据分布等,也会影响MySQL优化器最终选择使用哪个索引。
因此,在分析执行计划时,除了关注"possible_keys"和"key"字段外,还需要结合其他字段(如rows、type、Extra)进行综合分析,以更好地理解和优化查询性能。
相关问题
explain possible key
在使用EXPLAIN命令时,possible_keys列显示的是可能应用在查询中的索引。它显示查询涉及到的字段上存在的索引,但不一定被查询实际使用。这意味着可能有多个索引可用于查询,但实际上只有其中的一部分索引会被选择和使用。可能的索引是指在查询中可以使用的索引的一个或多个选择。在possible_keys列中列出了这些可能的索引。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [数据库 explain详解](https://download.csdn.net/download/weixin_38563552/13687412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [MySql中explain之possible_keys、key及key_len介绍](https://blog.csdn.net/wokoone/article/details/114607280)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
mysql explain结果怎么看_mysql explain 查询处理的结果详解
MySQL的EXPLAIN命令可以帮助我们分析查询语句的执行计划,从而优化查询性能。EXPLAIN命令会返回一张表,表的每一行代表SQL查询语句中的一个操作步骤,每一列代表这个步骤的详细信息。
下面是EXPLAIN命令输出结果的每一列的含义:
1. id:查询的序列号,表示查询中每个子查询的执行顺序。如果是一个简单的查询,则id的值为1。
2. select_type:查询类型,表示查询的类型,例如简单查询、联合查询、子查询等。
3. table:表名,表示查询操作所涉及的表。
4. partitions:分区信息,表示查询操作所涉及的分区。
5. type:访问类型,表示查询时所使用的访问方式,例如全表扫描、索引扫描等。
6. possible_keys:可选索引,表示查询操作可能使用的索引。
7. key:实际使用的索引,表示查询操作实际使用的索引。
8. key_len:索引长度,表示索引中使用的字节数。
9. ref:关联列,表示索引和数据表之间的关联列。
10. rows:扫描的行数,表示查询操作扫描的行数。
11. filtered:过滤的行数,表示查询操作过滤掉的行数。
12. Extra:额外信息,表示其他的一些信息,例如使用了哪些临时表、使用了哪些文件排序等。
通过分析EXPLAIN命令的输出结果,我们可以了解查询语句的执行过程,找出性能瓶颈,从而优化查询性能。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)