关于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列为零的就表示这是一个结果集,不需要使用它来进行查询。