mysql中执行计划索引的案例分析
发布时间:2022-01-10 15:59:12 所属栏目:MySql教程 来源:互联网
导读:小编给大家分享一下mysql中执行计划索引的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 首先执行计划包含的信息: id, select_type, table, partitions, type,
小编给大家分享一下mysql中执行计划索引的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 首先执行计划包含的信息: id, select_type, table, partitions, type, possible_keys, key, key_len, ref, rows, filtered, Extra select 查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 存在三种情况: a) id相同,表示表(table字段)执行顺序从上到上 b) id不同,如果是子查询,id越大表执行的优先级越高 c) id有相同也有不同,id相同,可认为是同一组,从上至下顺序执行,所有组中id越大执行优先级越高 select_type 主要有六种 SIMPLE 简单查询,不包括自查询及union PRIMAY 查询中包含任何复杂的子部分的最外层查询的标记 SUBQUERY 在select或where子句列表中包含自查询 DERIVED 在from列表中包括的子查询标记为derived(衍生)mysql递归查询这些子查询并放在临时表里 UNION 如果第二个select出现在union之后则标记为union, 如果union包含在from子句的子查询中,外层的select标记为derived UNION RESULT union结果的合并 table 对应的表 type 访问类型 效率 system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>ALL 主要使用到的:system>const>eq_ref>ref>range>index>ALL system 表只有一行记录(系统表) const 索引常量 eq_ref 唯一性索引扫描 ref 非唯一性索引扫描 range 范围索引扫描 (索引列使用 between in等范围限定) index 全索引扫描 ALL 全表扫描 possible_keys 查询涉及到的字段上存在的索引一个或多个(可能用到的,但不一定会使用) keys 实际使用的索引 key_len 索引使用的字节数,可通过该列计算查询中使用索引的长度,同样查询结果条件下(不损失精度的条件下),长度越小越好 显示的值为索引的最大可能长度,非实际长度,即key_len通过表定义计算所得非表内检索值 ref 显示索引用到的列(或用到的是常量) 例 db.table.col ,const rows 根据表统计信息及索引选用情况,大致估算出找到所需的记录需要读取的行数 Extra 其他信息 1、Using filesort 使用外部的索引排序(文件排序),而不是按照索引的排序进行读取 例如使用复合索引的表,查询排序时只使用了复合索引的其中一列,可能会造成文件排序。需尽量避免的情况 2、Using temporary 使用了临时表保存中间结果,常见于order by 及group by 消耗资源,需避免的情况 order by 及group by 语句中使用覆盖索引 3、Using index 使用的覆盖索引,避免访问表的数据行 同时出现using where,表示索引用来查询索引键值的查找(如查询结果中的列被索引列覆盖) 如果没有出现using where,表示索引直接用来读取数据,不执行查找动作 *覆盖索引(Covering index) select 的数据列只从索引中获得,不必查找数据行 4、Using where 5、Using join buffer 使用了连接缓存 6、Impossible where where 子句结果false 7、select table optimized away 在没有group by子句的情况下,基于索引优化MIN/MAX操作或者对于MyISAM 存储引擎优化COUNT(*) 操作,不必等到执行阶段再进行计算,查询执行接话生成阶段即可完成优化 8、distinct 优化distinct操作,在找到第一匹配的元组后即停止找同样值的动作 以上是“mysql中执行计划索引的示例分析”这篇文章的所有内容,感谢各位的阅读! (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |