Mysql索引慢解决

索引慢解决

explain关键字

explain+SQL

  1. id执行顺序,id相同从上到下;id不同,如果是子查询id序号会递增,id值越大优先级越高;id相同和不同都存在时,id相同理解为一组,从上往下顺序执行,所有组中,id值越大优先级越高。

  2. select_type:SIMPLE为简单的select查询,查询中不包含子查询或者UNION;PRIMARY为包含任何复杂子部分,最外层则被标记为Primary;DERIVED(衍生)是FROM列表中包含的子查询,Mysql会递归这些子查询,结果存放在临时表中;SUBQUERY是select或者where列表中包含子查询

  3. table:显示这行数据属于那张表

  4. type:访问类型排序system>const>eq_ref>ref>range>index>All。最好保证range级别,最好能到ref

    • system:只有一行记录

    • const:通过索引一次就能找到,primary或者unique索引

    • eq_ref:唯一性索引扫描,对每一个索引键,表中只有一条记录与之对应,常见于主键或唯一索引扫描

    • ref:非唯一索引,普通索引

    • range:只检索给定行比如where id>0

    • index:从索引树中遍历,和all都是读全表,但all是从硬盘读取

    • All:遍历全表

  5. possible_key:可能应用在这张表中的索引可是多个,不一定用上

  6. key:实际使用索引

  7. ref:索引那一列被使用

  8. rows:执行查询时必须检查的次数

  9. extra:常见重要额外信息

    • using filesort:无法利用索引完成的排序“文件排序”
    • using temporary:使用临时表

索引失效
Mysql索引慢解决_第1张图片

你可能感兴趣的:(mysql,数据库)