mysql explain详解二

前言

explain的下一篇

正文

其中一个字段就是extra,这个字段东西非常多,如果需要知道额外的,可以当场去查,大致会告诉我们一些执行的详细的东西。

如果我们想知道,详细的成本是怎么计算的,那么可以详细的输出:

EXPLAIN FORMAT=JSON SELECT * FROM s1 INNER JOIN s2 ON s1.key1 = s2.key2 WHERE s1.co
mmon_field = 'a'\G

EXPLAIN: { 
 "query_block": { 
 "select_id": 1, # 整个查询语句只有1个SELECT关键字,该关键字对应的id号为1 
 "cost_info": { 
 "query_cost": "3197.16" # 整个查询的执行成本预计为3197.16 
 }, 
 "nested_loop": [ # 几个表之间采用嵌套循环连接算法执行 
 # 以下是参与嵌套循环连接算法的各个表的信息 
 { 
 "table": { 
 "table_name": "s1", # s1表是驱动表 
 "access_type": "ALL", # 访问方法为ALL,意味着使用全表扫描访问 
 "possible_keys": [ # 可能使用的索引 
 "idx_key1" 
 ], 
 "rows_examined_per_scan": 9688, # 查询一次s1表大致需要扫描9688条记录 
 "rows_produced_per_join": 968, # 驱动表s1的扇出是968 
 "filtered": "10.00", # condition filtering代表的百分比 
 "cost_info": { 
 "read_cost": "1840.84", # 稍后解释 
 "eval_cost": "193.76", # 稍后解释 
 "prefix_cost": "2034.60", # 单次查询s1表总共的成本 
 "data_read_per_join": "1M" # 读取的数据量 
 }, 
 "used_columns": [ # 执行查询中涉及到的列 
 "id", 
 "key1", 
 "key2", 
 "key3", 
 "key_part1", 
 "key_part2", 
 "key_part3", 
 "common_field" 
 ], 
 # 对s1表访问时针对单表查询的条件 
 "attached_condition": "((`xiaohaizi`.`s1`.`common_field` = 'a') and (`xiaohaizi
`.`s1`.`key1` is not null))" 
 } 
 }, 
 { 
 "table": { 
 "table_name": "s2", # s2表是被驱动表 
 "access_type": "ref", # 访问方法为ref,意味着使用索引等值匹配的方式访问 
 "possible_keys": [ # 可能使用的索引 
 "idx_key2" 
 ],  "key": "idx_key2", # 实际使用的索引 
 "used_key_parts": [ # 使用到的索引列 
 "key2" 
 ], 
 "key_length": "5", # key_len 
 "ref": [ # 与key2列进行等值匹配的对象 
 "xiaohaizi.s1.key1" 
 ], 
 "rows_examined_per_scan": 1, # 查询一次s2表大致需要扫描1条记录 
 "rows_produced_per_join": 968, # 被驱动表s2的扇出是968(由于后边没有多余的表
进行连接,所以这个值也没啥用) 
 "filtered": "100.00", # condition filtering代表的百分比 
 # s2表使用索引进行查询的搜索条件 
 "index_condition": "(`xiaohaizi`.`s1`.`key1` = `xiaohaizi`.`s2`.`key2`)", 
 "cost_info": { 
 "read_cost": "968.80", # 稍后解释 
 "eval_cost": "193.76", # 稍后解释 
 "prefix_cost": "3197.16", # 单次查询s1、多次查询s2表总共的成本 
 "data_read_per_join": "1M" # 读取的数据量 
 }, 
 "used_columns": [ # 执行查询中涉及到的列 
 "id", 
 "key1", 
 "key2", 
 "key3", 
 "key_part1", 
 "key_part2", 
 "key_part3", 
 "common_field" 
 ] 
 } 
 } 
 ] 
 } 
} 
posted @ 2025-04-10 10:04  敖毛毛  阅读(16)  评论(0)    收藏  举报