百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> MySQL中B-Tree引索和Hash引索的区别?
分享文章到:

MySQL中B-Tree引索和Hash引索的区别?

发布时间:09/01 来源:未知 浏览: 关键词:

MySQL中B-Tree引索和Hash引索的不同:1、B-Tree引索支撑最左前缀匹配原则,而Hash引索不支撑;2、MyISAM和InnoDB都支撑B-Tree引索,而Hash引索只要Memory和NDB引擎索引支撑。

Hash索引

Hash 索引构造的非凡性,其检索效力非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能拜访到页节点这样屡次的IO拜访,所以 Hash 索引的查询效力要远高于 B-Tree 索引。

大概许多人又有疑问了,既然 Hash 索引的效力要比 B-Tree 高许多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效力高,但是 Hash 索引本身由于其非凡性也带来了许多限制和弊端,主要有以下这些。

(1)Hash 索引仅仅能知足"=","IN"和"<=>"查询,不克不及使用范畴查询。

由于 Hash 索引比力的是停止 Hash 运算之后的 Hash 值,所以它只能用于等值的过滤,不克不及用于基于范畴的过滤,由于经过响应的 Hash 算法处置之后的 Hash 值的大小关系,并不克不及包管和Hash运算前完全一样。

(2)Hash 索引没法被用来幸免数据的排序操纵。

由于 Hash 索引中存置的是经过 Hash 运算之后的 Hash 值,并且Hash值的大小关系并不必然和 Hash 运算前的键值完全一样,所以数据库没法利用索引的数据来幸免任何排序运算;

(3)Hash 索引不克不及利用部分索引键查询。

关于组合索引,Hash 索引在运算 Hash 值的时候是组合索引键合并后再一起运算 Hash 值,而不是独自运算 Hash 值,所以通过组合索引的前面一个或几个索引键停止查询的时候,Hash 索引也没法被利用。

(4)Hash 索引在任何时候都不克不及幸免表扫描。

前面已经知道,Hash 索引是将索引键通过 Hash 运算之后,将 Hash运算结果的 Hash 值和所对应的行指针信息存置于一个 Hash 表中,由于不一样索引键存在雷同 Hash 值,所以即便取知足某个 Hash 键值的数据的记载条数,也没法从 Hash 索引中直接完成查询,还是要通过拜访表中的实际数据停止响应的比力,并得到响应的结果。

(5)Hash 索引碰到大量Hash值相等的状况后机能并不必然就会比B-Tree索引高。

关于选中性比力低的索引键,假如创立 Hash 索引,那么将会存在大量记载指针信息存于统一个 Hash 值相关联。这样要定位某一笔记录时就会非常费事,会白费屡次表数据的拜访,而造成团体机能低下。

B-Tree索引

B-Tree 索引是 MySQL 数据库中使用最为频繁的索引类型,除了 Archive 储备引擎之外的其他所有的储备引擎都支撑 B-Tree 索引。不仅仅在 MySQL 中是如此,实际上在其他的许多数据库治理系统中B-Tree 索引也一样是作为最主要的索引类型,这主如果由于 B-Tree 索引的储备构造在数据库的数据检

索中有非常优良的展现。

一样来说, MySQL 中的 B-Tree 索引的物理文件大多都是以 Balance Tree 的构造来储备的,也就是所有实际需要的数据都存置于 Tree 的 Leaf Node ,并且到任何一个 Leaf Node 的最短途径的长度都是完全雷同的,所以我们大家都称之为 B-Tree 索引当然,大概各种数据库(或 MySQL 的各种储备引擎)在存置本人的 B-Tree 索引的时候会对储备构造稍作革新。如 Innodb 储备引擎的 B-Tree 索引实际使用的储备构造实际上是 B+Tree ,也就是在 B-Tree 数据构造的根基上做了很小的革新,在每一个

Leaf Node 上面出了存置索引键的相关信息之外,还储备了指向与该 Leaf Node 相邻的后一个 LeafNode 的指针信息,这主如果为了加快检索多个相邻 Leaf Node 的效力思考。

引荐教程:《MySQL教程》

以上就是MySQL中B-Tree引索和Hash引索的不同?的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板