• explain是解释SQL语句的执行计划,即显示该SQL语句怎么执行的
◦ 使用 explain 的时候,也可以使用 desc
• 5.6 版本支持DML语句进行explain解释
• 5.6 版本开始支持 JSON格式 的
注意:EXPLAIN查看的是执行计划,做SQL解析,不会去真的执行;且到5.7以后子查询也不会去执行。
• 参数extend
mysql> show warningsG
*************************** 1. row ***************************
Level: Warning
Code: 1681
Message: 'EXTENDED' is deprecated and will be removed in a future release. -- 即将被弃用
*************************** 2. row *************************** -- 显示真正的执行语句
Level: Note
Code: 1003
Message: /* select#1 */ select `burn_test`.`test_index_2`.`a` AS `a`,`burn_test`.`test_index_2`.`b` AS `b`,`burn_test`.`test_index_2`.`c` AS `c` from `burn_test`.`test_index_2` where ((`burn_test`.`test_index_2`.`b` > 1) and (`burn_test`.`test_index_2`.`b` < 3))
2 rows in set (0.00 sec)
• 参数FORMAT。使用 FORMART=JSON 不仅仅是为了格式化输出效果,还有其他有用的显示信息。 且当5.6版本后,使用 MySQL Workbench ,可以使用 visual Explain 方式显示详细的图示信息