说一说索引的底层实现?
Hash索引
基于哈希表实现,只有精确匹配索引所有列的查询才有效,对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码(hashcode),并且Hash索引将所有的哈希码存储在索引中,同时在索引表中保存指向每个数据行的指针。

B-Tree索引(MySQL使用B+Tree)
B-Tree能加快数据的访问速度,因为存储引擎不再需要进行全表扫描来获取数据,数据分布在各个节点之中。

B+Tree索引
是B-Tree的改进版本,同时也是数据库索引索引所采用的存储结构。数据都在叶子节点上,并且增加了顺序访问指针,每个叶子节点都指向相邻的叶子节点的地址。相比B-Tree来说,进行范围查找时只需要查找两个节点,进行遍历即可。而B-Tree需要获取所有节点,相比之下B+Tree效率更高。
B+tree性质:
n棵子tree的节点包含n个关键字,不用来保存数据而是保存数据的索引。
所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
所有的非终端结点可以看成是索引部分,结点中仅含其子树中的最大(或最小)关键字。
B+ 树中,数据对象的插入和删除仅在叶节点上进行。
B+树有2个头指针,一个是树的根节点,一个是最小关键码的叶节点。

-
数据
+关注
关注
8文章
7314浏览量
93968 -
存储
+关注
关注
13文章
4693浏览量
89567 -
数据结构
+关注
关注
3文章
573浏览量
41366 -
MySQL
+关注
关注
1文章
897浏览量
29226 -
索引
+关注
关注
0文章
60浏览量
10760
发布评论请先 登录
labview如何实现间隔索引功能
MySQL数据库索引的底层是怎么实现的
XML数据分页索引技术研究
教育网BBS搜索引擎设计与实现
化工搜索引擎索引库的研究和实现
基于JAVA技术的搜索引擎的研究与实现
Redis基本类型和底层实现
集群环境下分布式索引的实现
基于Lucene实现全文搜索引擎MYSearch的构建
索引是什么意思 优缺点有哪些
redis数据结构的底层实现
Mysql索引是什么东西?索引有哪些特性?索引是如何工作的?

索引的底层实现详解
评论