• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL 话语性能分析_mysql

mysql 搞代码 7年前 (2018-06-09) 136次浏览 已收录 0个评论

mysql 语句性能分析

MySQL 执行计划就是在一条 SELECT 语句前放上关键词 EXPLAIN ,MySQL 解释它将如何处理 SELECT,提供有关表如何联合和以什么次序联合的信息。借助于 EXPLAIN 可以知道:

  • 什么时候必须为表加入索引,以得到一个使用索引找到记录的更快的 SELECT 方法。
  • 优化器是否以一个最佳次序联结表

MySQL 话语性能分析_mysql
 各属性的含义如下:

 

id:查询的序列号

select_type:查询的类型,主要包括普通查询、联合查询和子查询。

table: 所访问数据库中表的名称。

type:联合查询使用的类型。

possible_keys:指出 MySQL 能使用哪个索引在该表中找到该行。如果这个值是空的,则表示没有相关的索引。这时要提高性能,可通过检验 WHERE 子句,看是否引用了某些字段,或者检查字段是否适合索引。

key:显示MySQL 实际决定使用的键。如果没有索引被选择,键是 NULL。

key_len:显示MySQL 决定使用的键长度。如果键是 NULL,长度就是NULL。注意,这个值可以反映出一个多重主键里 MySQL 实际使用了哪部分。

ref:显示哪个字段或常数与 key 一起被使用。

rows:这个值表示 MySQL 要遍历多少数据才能找到所需的结果集,其在 InnoDB 上是不准确的。

Extra:如果是 Only index,意味着信息只能用索引树中的信息检索,这比扫描整个表要快;如果是 where used,则表示使用了 where 限制,但是用索引还不够;如果是 impossible where,则表示通过收集到的统计信息判断出不可能存在的结果。除此之外,Extra 还有下面一些可能值:Using filesort  表示包含 orderby 且无法使用索引进行排序操作时,不得不使用相应的排序算法实现。using temporary 使用临时表,常见于 orderby 和 group by。select tables optimized way 使用聚合函数,并且 MySQL 进行了快速定位。通常是 MAX,MIN,COUNT(*) 等函数。

 

需要说明的是,type 显示的访问类型是较重要的指标,结果值从好到坏依次是:system(系统表)、const(读常量)、eq_ref(最多一条匹配结果,通常是通过主键访问)、ref(被驱动表索引使用)、fulltext(全文索引检索)、ref_or_null(带空值的索引查询)、index_merge(合并索引结果集)、unique_subquery(子查询中返回的字段是唯一组合或索引)、index_subquery(子查询返回的是索引,但非主键)、range(索引范围扫描)、index(全索引扫描)、ALL(全表扫描)。

 

一般来说,保证查询至少达到 range 级,最好能达到 ref 级。ALL 为全表扫描,是最坏的情况,这种情况往往是没用上索引。

欢迎大家阅读《MySQL 话语性能分析_mysql》,跪求各位点评,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL 话语性能分析_mysql

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址