美文网首页关系型DB(MySQL,MyBatis )mysql
hash索引跟B+ tree索引区别

hash索引跟B+ tree索引区别

作者: xueseyounai | 来源:发表于2019-07-24 09:44 被阅读0次

1.范围区别:

            1.hash索引因为底层是哈希表,数据存储在哈希表中顺序是没有关联的,所以他不适合范围查找,如果要范围查找就需要全表扫描,他只适合全值扫描;

简单的来说就是hash索引适合等值查找,不适合范围查找

            2.B+ tree树索引,底层是多路查询平衡树,节点是天然有序的(左节点小于服节点,右节点大于父节点),所以对于范围查找的时候不需要做全表扫描;

2.排序

        hash索引无法进行排序

3.哈希碰撞问题

        如果存在重复键值对,哈希索引效率就会很低

补充说明:

    B+ tree

    1.存储对象

         1.1 叶子节点,可以存储整行数据,被称为主键索引,也被称作为聚簇索引;

         1.2  叶子节点,可以存储主键的值,被称为非主键索引,也被称作为聚簇索引

         注意:

            主键索引查询速度会比较快,因为主键只会查询一次,因为数据已经存储在节点数据中了

            非主键索引会回表查询多次(回表,就是第一次索引查找查找到的是主键值,然后用主键值去查找主键的树);

            但是有一种情况例外就是覆盖索引,覆盖索引就是当查询语句select 索引列值;就是查询的语句是正好是索引列的值,那么也可以只查询一次

索引最左匹配规则,在联合索引的时候,mysql明明创建了索引,但是却没有用索引,这跟查询优化器相关;

相关文章

  • Hash索引的底层原理是什么?

    MySQL 中的 Hash 索引 Hash 索引与 B+ 树索引的区别 Hash 索引不能进行范围查询,而 B+ ...

  • hash索引跟B+ tree索引区别

    1.范围区别: 1.hash索引因为底层是哈希表,数据存储在哈希表中顺序是没有关联的,所以他不适合范围查找,如果要...

  • B+Tree索引和Hash索引区别

    科普时间:B+ Tree索引和Hash索引区别 哈希索引适合等值查询,但是不无法进行范围查询 哈希索引没办法利用索...

  • MySQL的数据库索引优化

    1.Btree索引和Hash索引 MySQL支持的索引类型: B-tree索引的特点: B-tree索引以B+树的...

  • Hash索引和B+树索引的区别

    Hash索引和B+树索引有什么区别或者说优劣呢? 首先要知道Hash索引和B+树索引的底层实现原理: hash索引...

  • MySQL 为啥采用B+Tree结构实现索引

    从数据结构的角度来看MyISAM支持B+树索引、hash索引、fulltext索引(全文索引)、r-tree 索引...

  • MYSQL(05)-索引原理

    Mysql两种索引结构:B+Tree索引和Hash索引的区别和使用场景 Hash索引:使用hash散列的形式,已K...

  • 索引相关

    1.MySQL中使用较多的索引有Hash索引,B+树索引2.InnoDB默认索引实现为:B+树 hash索引 1....

  • MYSQL 8 基本操作之04 (索引)

    创建索引 2.B-TREE索引与HASH索引,两者的区别 3.查看索引使用情况

  • InnoDB-索引

    四、索引 mysql支持的常见索引:B+,全文、hash 1.B+树索引 B+树索引可以分为聚簇索引和非聚簇索引。...

网友评论

    本文标题:hash索引跟B+ tree索引区别

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