MySQL履行计划(ExplainPlan)是用于剖析MySQL查询句子的履行功率的一种东西。它能够协助你了解MySQL是怎么履行你的SQL查询句子的,包括它...
MySQL履行计划(Explain Plan)是用于剖析MySQL查询句子的履行功率的一种东西。它能够协助你了解MySQL是怎么履行你的SQL查询句子的,包括它怎么运用索引,怎么衔接表,以及怎么履行排序和分组操作等。下面是怎么查看和剖析MySQL履行计划的过程:
1. 运用EXPLAIN句子: 在SQL查询句子前加上`EXPLAIN`关键字,例如: ```sql EXPLAIN SELECT FROM table_name WHERE column_name = 'value'; ``` 这将回来查询的履行计划。
3. 剖析履行计划: 全表扫描(ALL):一般意味着没有运用索引,功能较差。 索引扫描(index):运用了索引,但扫描了整个索引。 规模扫描(range):运用索引规模查询,功能较好。 Extra列:假如呈现“Using index”,表明查询仅运用了索引中的信息而没有拜访表数据。假如呈现“Using filesort”,表明MySQL需求额定的排序过程,这一般意味着功能问题。
4. 优化查询: 依据履行计划的成果,你能够优化查询句子。例如,增加恰当的索引,调整查询句子以运用更有用的衔接类型,或许重写查询以削减全表扫描等。
经过定时查看和剖析履行计划,你能够更好地了解MySQL怎么履行你的查询,并据此优化数据库功能。
什么是MySQL履行计划?
MySQL履行计划是数据库查询优化器在履行SQL句子前,对句子进行解析、剖析、优化后生成的履行计划。它详细描绘了查询句子怎么履行,包括拜访哪些表、运用哪些索引、履行次序等。经过剖析履行计划,能够了解查询句子的履行功率,然后进行功能优化。
怎么查看MySQL履行计划?
在MySQL中,咱们能够运用EXPLAIN关键字来查看履行计划。在履行SELECT句子前加上EXPLAIN,即可查看该句子的履行计划。例如:
```sql
EXPLAIN SELECT FROM table_name WHERE condition;
履行计划包括哪些信息?
履行计划包括以下信息:
1. id:SELECT查询序列号,标识查询中SELECT句子的次序。id值越大,履行优先级越高。
2. select_type:查询中每个SELECT子句的类型,如SIMPLE、PRIMARY、SUBQUERY等。
3. table:查询所触及的表名。
4. partitions:假如查询是依据分区表,显现查询将拜访的分区。
5. type:查询履行的类型,描绘了查询是怎么履行的。常见类型有ALL、index、range、ref等。
6. possible_keys:或许应用在这张表上的索引。
7. key:实际运用的索引。
8. key_len:运用的索引的长度。
9. ref:显现索引的哪一列被运用了。
10. rows:MySQL以为有必要查看多少行以找到所需的记载。
11. Extra:包括MySQL解析查询的额定信息,如是否运用了索引、是否进行了排序等。
怎么解读履行计划?
以下是对履行计划中各个信息的解读:
1. id:id值越大,表明该查询的履行优先级越高。假如id相同,则依照从上到下的次序履行。
2. select_type:依据select_type的值,能够判别查询的类型。例如,SIMPLE表明查询不包括子查询或UNION查询;PRIMARY表明查询是最外层的查询;SUBQUERY表明子查询等。
3. table:显现查询所触及的表名。
4. type:type的值从最优到最差依次为:system、const、eq_ref、ref、range、index、ALL。一般来说,咱们期望type的值尽或许接近system或const,表明查询功率较高。
5. possible_keys:显现或许应用在这张表上的索引。
6. key:显现实际运用的索引。
7. rows:MySQL以为有必要查看多少行以找到所需的记载。rows值越小,表明查询功率越高。
8. Extra:包括MySQL解析查询的额定信息。例如,\