mysql的执行计划解释

  关于MySQL的执行计划,做个笔记,可以做为优化的依据,尽量将第四列类型优化到裁判,至少要保证范围方式,能用覆盖索引的要使用覆盖索引,然后possible_keys显示零不代表不使用索引,覆盖索引的时候,可能只在关键列显示,possible_keys显示零,然后注意当分组和排序的时候可能会使用临时表的时候,尽量不使用磁盘临时表;         <强>         语解释法         解释选择……         变体:         1. 解释扩展选择……         将执行计划“反编译”成选择语句,运行显示警告可得到被MySQL优化器优化后的查询语句         例如:         mysql>解释扩展选择CUST_ID, count(*)从biz_member_info group by CUST_ID限制10;         + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - +         | | id select_type表| | |型possible_keys关键| | key_len | ref额外过滤| | | |行         + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - +         | 1 |简单| biz_member_info | |索引CUST_ID | CUST_ID零10 | 17665850.00 | | | 768 | |使用索引         + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - +         mysql>显示警告;         + - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +         | | | |代码级别信息         + - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +         |注意| 1003 |/*选择# 1 */选择cms。“biz_member_info”。“CUST_ID”“CUST_ID”,数(0)的count(*)从“cms”。biz_member_info group by“cms”。“biz_member_info”。“CUST_ID”限制10 |         + - - - - - - - + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +         1行集(0.00秒)         2. 解释分区选择……         用于分区表的解释         <强>         mysql>解释选择CUST_ID, count(*)从biz_member_info group by CUST_ID限制10;         + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - +         | | id select_type表| | |型possible_keys关键| | key_len | ref额外| | |行         + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - +         | 1 |简单| biz_member_info | |索引CUST_ID | CUST_ID零10 | | | 768 | |使用索引         + - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - +         1行集(0.00秒)         <强> 2.1,第一列id         id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为零的就表示这是一个结果集,不需要使用它来进行查询。         

mysql的执行计划解释