zoukankan      html  css  js  c++  java
  • mysql explain key_len小结

    http://hidba.org/?p=404

    这片文章介绍了key_len参数值的计算方法

    我再此稍微扩展下,如有雷同实属荣幸

    key_len是表示得到结果集所使用的选择的索引的长度,但不包括order by,也就是说,如果order by也使用了索引则key_len则不计算在内

    帖代码

    SELECT t. *
    FROM tb_1 t
    FORCE INDEX ( idx_fid_dis_la )
    WHERE t.fid = '6572'
    ORDER BY t.dis DESC , t.la DESC
    LIMIT 100 , 40

    执行计划

    id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra
    1     SIMPLE              t     ref     idx_fid_dis_la  idx_fid_dis_la   2     const     147     Using where

    注:fid: 2byte dis:1byte la:4byte

    不像上边那样使用联合索引

    SELECT t. *
    FROM tb_1 t
    
    WHERE t.fid = '6572'
    ORDER BY t.dis DESC , t.la DESC
    LIMIT 100 , 40

    执行计划:

    id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra
    1       SIMPLE            t     ref         typeid         typeid     2        const     127     Using where; Using filesort

    注意这里extra里有了Using filesort,但用到的索引的长度仍然是2byte,也就是说得到结果只用到了fid字段,而order by 时没用到索引

    总结:在得到结果但没将结果排序这一步时都只利用了fid,但是上一个索引(idx_fid_dis_la  )里有order by可利用的字段,而下一个索引里没有

    虽然上一句中的order by用到了索引但是没有计算到key_len中

    走啦,赶不上车了,如有不对之处,敬请提出

  • 相关阅读:
    hdu 2604 Queuing(矩阵快速幂乘法)
    hdu 5591 ZYB's Game
    hdu 5590 ZYB's Biology
    CodeForces
    uva 193 Graph Coloring(图染色 dfs回溯)
    uva 10004 Bicoloring(dfs二分染色,和hdu 4751代码差不多)
    CSU
    hdu 5115 Dire Wolf(区间dp)
    腾讯装扮下拉选项卡特效(QQ空间)
    楼梯式定位导航系统
  • 原文地址:https://www.cnblogs.com/iLoveMyD/p/2546679.html
Copyright © 2011-2022 走看看