说一说索引的底层实现?
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文章
6058浏览量
86832 -
存储
+关注
关注
12文章
3404浏览量
84279 -
数据结构
+关注
关注
3文章
491浏览量
39747 -
MySQL
+关注
关注
1文章
642浏览量
25687 -
索引
+关注
关注
0文章
48浏览量
10350
发布评论请先 登录
相关推荐
Altium如何打印清晰的底层丝印
底层丝印层在灰度模式下,色彩非常浅,辨识度很不好;下面就为大家介绍下如何打印清晰的底层丝印;方法如下:为了方便展示,先准备一个原始PCB,如下图:(图文详解见附件)
发表于 11-02 11:18
labview如何实现间隔索引功能
实现间隔索引功能,比如有在循环里有10个数,1 2 3.。.。8 9 10,我想索引1 3 5 7 9或者 2 4 6 8 10,请大神指导
发表于 07-07 11:05
MySQL数据库索引的底层是怎么实现的
底层怎么实现的?2.索引失效的情况有哪些?失效的原因是什么?简洁描述索引是快速查找特定列值的行数据的,一种优化查询的数据结构。查找特定列值。例如一条sql里的查询条件是姓名 name = '张三
发表于 07-28 15:30
XML数据分页索引技术研究
索引查询技术进行研究,提出一种XML数据分页索引查询实现方法。该方法把页面元素标记数量作为数据分页依据,建立XML数据的分页索引,并在该分页索引上实现XPath
发表于 03-31 10:07
•10次下载
教育网BBS搜索引擎设计与实现
索引擎搜索的盲点,本文系统介绍了根据教育网BBS 的特点建立BBS 搜索引擎的关键技术和实现方法。关键词:搜索引擎,Telnet 协议,BBS,
发表于 06-17 11:28
•14次下载
化工搜索引擎索引库的研究和实现
索引开发包深入研究的基础上,设计了多索引器索引方案,有效地减少了索引时间,提高了索引效率;在建立倒排索引时,通过对索引表中词条排序过程
发表于 12-18 16:27
•13次下载
基于JAVA技术的搜索引擎的研究与实现
索引擎的三个核心部分即网络蜘蛛、网页索引、搜索进行了实现。索引和搜索部分借助Lucene全文搜索引擎库中的Java类进行实现。实现搜索引擎的个性化,使搜
发表于 05-07 14:14
•35次下载
Redis基本类型和底层实现
底层实现。事实上,Redis的高效性和灵活性正是得益于对于同一个对象类型采取不同的底层结构,并在必要的时候对二者进行转换;以及各种底层结构对内存的合理利用。
发表于 11-25 15:11
•4257次阅读
索引是什么意思 优缺点有哪些
索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。而且索引是一个文件,它是要占据物理空间的。 MySQL索引的建立对
评论