EXPLAN

雨燕双飞 提交于 2020-02-24 05:19:30

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。

使用方法,在select语句前加上explain就可以了:

    explain select surname,first_name form a,b where a.id=b.id

 

参数
  • table。 表示这行数据是哪张表。
  • type。显示连接使用了哪种类型。 null、const/system、eq_ref、ref、range、index和ALL,从前到后,性能从最好变最差。
  1.  null。 表示不用访问表或者索引就能得到结果
  2. const/system。 单表中最多只有一条匹配行。
  3. eq_reg。 相对于ref来说就是使用的是唯一索引,对于每个索引键值,只有唯一的一条匹配记录(在联表查询中使用primary key或者unique key作为关联条件)
  4. ref。 使用非唯一性索引或者唯一索引的前缀扫描,返回匹配某个单独值的记录行
  5. range。 索引范围扫描,常见于<、<=、>、>=、between等操作符
  6. index。 索引全扫描,MYSQL遍历整个索引来查找匹配的行
  7. ALL。全表扫描,MYSQL扫描全表来找到匹配的行
  • possible_keys。显示可能应用在这张表中的索引。如果为空,没有可能的索引
  • key。 实际使用的索引
  • key_len。 使用的索引的长度。
  • ref。 显示索引的那一列被使用。
  • rows。 MYSQL认为必须检查的用来返回请求数据的行数
  • extra。 关于MYSQL如何解析查询的额外信息。性能从好到坏:useing index>usinh where > using temporary | using filesort
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!