美文网首页
MySql索引

MySql索引

作者: 任嘉平生愿 | 来源:发表于2019-11-13 16:53 被阅读0次

    底层文件系统读取和写入数据

    当我们查询数据的时候,要去读机械硬盘时,我们需要通过我们的柱面,磁道定位到扇区,然后找到table.idb存储在图右磁盘的红色区域内,读取数据时(假设顺时钟),将会从A依次读到B,这就是原始存储和读取方式。

    如果建立了索引就直接存储id + address直接定位到目标位置。

    hash索引和B+树区别

    select * from person where id = 1,就可以对id做hash,快速的找到数据。这样是没错,可是使用hash的话,有一个显著的弊端,无法进行范围的查找。比如:select * from person where id > 1;这样使用哈希完全没有办法找到数据在哪里。

    1.而B+树本身的父节点就是子节点的范围所以可以按照范围查找。

    2.哈希索引没办法利用索引完成排序 

    3.哈希索引不支持多列联合索引的最左匹配规则 

    4.如果有大量重复键值的情况下,哈希索引的效率会很低,因为存在哈希碰撞问题

    有了索引下推优化,可以在有like条件查询的情况下,减少回表次数。

    相关文章

      网友评论

          本文标题:MySql索引

          本文链接:https://www.haomeiwen.com/subject/qtzubctx.html