explain是解释SQL语句的执行计划,即显示该SQL语句怎么执行的
- 使用 explain 的时候,也可以使用 desc
- 5.6 版本支持DML语句进行explain解释
- 5.6 版本开始支持 JSON格式 的输出
EXPLAIN查看的是执行计划,做SQL解析,不会去真的执行;且到5.7以后子查询也不会去执行。
- 参数FORMAT
- 使用 FORMART=JSON 不仅仅是为了格式化输出效果,还有其他有用的显示信息
- 且当5.6版本后,使用 MySQL Workbench ,可以使用 visual Explain 方式显示详细的图示信息。
root@mysqldb 14:26: [gavin]> explain format=json select * from test_index_2 where b >1 and b < 3\G
*************************** 1. row ***************************
EXPLAIN: {
"query_block": {
"select_id": 1,
"cost_info": {
"query_cost": "0.85" -- 总成本
},
"table": {
"table_name": "test_index_2",
"access_type": "ALL",
"rows_examined_per_scan": 6,
"rows_produced_per_join": 1,
"filtered": "16.67",
"cost_info": {
"read_cost": "0.75",
"eval_cost": "0.10",
"prefix_cost": "0.85",
"data_read_per_join": "16"
},
"used_columns": [
"a",
"b",
"c"
],
"attached_condition": "((`gavin`.`test_index_2`.`b` > 1) and (`gavin`.`test_index_2`.`b` < 3))"
}
}
}
1 row in set, 1 warning (0.00 sec)
标签:index,13,explain,gavin,cost,test,EXPLAIN From: https://www.cnblogs.com/gavin-zheng/p/18071739