explain显示了mysql如何使用索引来处理select语句以及连接表_第1页
explain显示了mysql如何使用索引来处理select语句以及连接表_第2页
explain显示了mysql如何使用索引来处理select语句以及连接表_第3页
explain显示了mysql如何使用索引来处理select语句以及连接表_第4页
explain显示了mysql如何使用索引来处理select语句以及连接表_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

explain 显示了 mysql 如何使用索引来处理 select 语句以及连接表。可以帮助 选择更好的索引和写出更优化的查询语句。 使用方法,在 select 语句前加上 explain 就可以了: 如:explain select surname,first_name form a,b where a.id=b.id 分析结果形式如下: table | type | possible_keys | key |key_len | ref | rows | Extra EXPLAIN 列的解释: table 显示这一行的数据是关于哪张表的 type 这是重要的列,显示连接使用了何种类型。从最好到最差的连接类型为 const、eq_reg、ref、range、indexhe 和 ALL possible_keys 显示可能应用在这张表中的索引。如果为空,没有可能的索引。可以为相关的 域从 WHERE 语句中选择一个合适的语句 key 实 际使用的索引。如果为 NULL,则没有使用索引。很少的情况下,MYSQL 会选择 优化不足的索引。这种情况下,可以在 SELECT 语句中使用 USE INDEX(indexname)来强制使用一个索引或者用 IGNOREINDEX(indexname)来 强制 MYSQL 忽略索引 key_len 使用的索引的长度。在不损失精确性的情况下,长度越短越好 ref 显示索引的哪一列被使用了,如果可能的话,是一个常数 rows MYSQL 认为必须检查的用来返回请求数据的行数 Extra 关于 MYSQL 如何解析查询的额外信息。将在表 4.3 中讨论,但这里可以看到的 坏的例子是 Using temporary 和 Usingfilesort,意思 MYSQL 根本不能使用索 引,结果是检索会很慢 extra 列返回的描述的意义 Distinct 一旦 MYSQL 找到了与行相联合匹配的行,就不再搜索了 Not exists MYSQL 优化了 LEFT JOIN,一旦它找到了匹配 LEFT JOIN 标准的行, 就不再搜索了 Range checked for each Record(index map:#) 没有找到理想的索引,因此对于从前面表中来的每一个行组合,MYSQL 检查使 用哪个索引,并用它来从表中返回行。这是使用索引的最慢的连接之一 Using filesort 看到这个的时候,查询就需要优化了。MYSQL 需要进行额外的步骤来发现如何 对返回的行排序。它根据连接类型以及存储排序键值和匹配条件的全部行的行 指针来排序全部行 Using index 列数据是从仅仅使用了索引中的信息而没有读取实际的行动的表返回的,这发 生在对表的全部的请求列都是同一个索引的部分的时候 Using temporary 看到这个的时候,查询需要优化了。这里,MYSQL 需要创建一个临时表来存储 结果,这通常发生在对不同的列集进行 ORDERBY 上,而不是 GROUP BY 上 Where used 使用了 WHERE 从句来限制哪些行将与下一张表匹配或者是返回给用户。如果不 想返回表中的全部行,并且连接类型 ALL 或 index,这就会发生,或者是查询 有问题 不同连接类型的解释(按照效率高低的顺序排序) system 表只有一行:system 表。这是 const 连接类型的特殊情况 const 表中的一个记录的最大值能够匹配这个查询(索引可以是主键或惟一索引)。 因为只有一行,这个值实际就是常数,因为 MYSQL 先读这个值然后把它当做常 数来对待 eq_ref 在连接中,MYSQL 在查询时,从前面的表中,对每一个记录的联合都从表中读 取一个记录,它在查询使用了索引为主键或惟一键的全部时使用 ref 这个连接类型只有在查询使用了不是惟一或主键的键或者是这些类型的部分 (比如,利用最左边前缀)时

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论