下面给大家详细讲解一下MySQL索引的底层实现原理。相信朋友们也要密切关注这个话题。现在给朋友们详细讲解一下MySQL索引的底层实现原理。边肖还详细收集了MySQL索引底层实现原理的相关信息。我希望你看到后会喜欢。
MySQL索引的底层实现原理
1.前言2。索引类型1、哈希索引2、B树索引和B Tree索引(1)BTree索引(2)B树索引(3)BTree相比BTree的优点:3。全文索引相关免费学习推荐:mysql视频教程
一、前言
MySQL支持很多存储引擎,不同的存储引擎对索引的支持也不同,所以MySQL数据库支持很多索引类型,比如BTree索引、B Tree索引、Hash索引、全文索引等等。
二、指数类型
1.散列索引
只有内存存储引擎支持哈希索引。哈希索引引用索引列的值来计算值的hashCode,然后在HashCode的对应位置存储值所在行中数据的物理位置。因为使用了hash算法,访问速度很快,但是一个值只能对应一个hashCode,hash是分布式的,所以hash索引不支持范围搜索和排序的功能。
2.B树索引和B树索引
(1)BTree索引BTree索引是对分叉树的平衡搜索。如果树的深度为2d(d 1),高度为h,那么BTree应该满足以下条件:每个叶节点的高度应该相同且等于h;每个叶节点由n-1个键和n个指针组成,其中d=n=2d,键和指针相互间隔,节点两端一定是键;叶节点指针都为空;非叶节点的键都是[key,data]元组,其中键表示作为索引的键,数据是键值所在行的数据。
(2)B树索引B树是B树的变种。如果d是树的度,h是数的高度,那么B树和B Tree的区别在于:BTree中的非叶节点不存储数据,只存储键值;btree的叶子节点没有指针,所有键值都会出现在叶子节点上,key存储的键值对应的是data data的物理地址;btree的每个非叶节点由n个键值和n个点组成。
(3)BTree相比BTree的优势:磁盘读写成本更低;查询速度更稳定。
3.全文索引
全文索引只能用于MyISAM和InnoDB。对于大型数据,生成全文索引会消耗大量的时间和空间。当生成全文索引时,将为文本生成单词列表,并且索引将基于单词列表。
相关免费学习推荐:mysql数据库(视频)
以上是MySQL索引底层实现原理的详细说明。请多关注php中文网的其他相关文章!
来源:php中文网站
标签:
免责声明:本文由用户上传,如有侵权请联系删除!