1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 详解MySQL索引的底层实现原理

详解MySQL索引的底层实现原理

时间:2019-10-10 22:53:03

相关推荐

详解MySQL索引的底层实现原理

数据库|mysql教程

MySQL索引

数据库-mysql教程

wordpressmx完整源码,没有彻底卸载ubuntu,tomcat运行环境变量,周公解梦 爬虫,php中top怎么算,黄梅seolzw

MySQL索引的底层实现原理

android开发源码下载,ubuntu终端修改文件,某些网站爬虫不了,php $_http,马甸seolzw

A、前言B、索引类型1、Hash索引2、BTree索引和B+Tree索引(1)BTree索引(2)B+Tree索引(3)B+Tree对比BTree优点:3、全文索引

wordpress抽奖源码,vscode和svn连接,ubuntu键盘连击,配置tomcat访问不了,被子爬虫,php 调用cmd,云南长沙seo优化价格,歌词网站源码,织梦设置模板路径lzw

相关免费学习推荐:mysql视频教学

A、前言

MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各有不同,因此MySQL数据库支持多种索引类型,如BTree索引,B+Tree索引,Hash索引,全文索引等等。

B、索引类型

1、Hash索引

只有memory(内存)存储引擎支持Hash索引,Hash索引引用索引列的值计算该值的hashCode,然后在hashCode相应的位置存储该值所在行数据的物理位置,因为使用散列算法,因此访问速度非常快,但是一个值只能对应一个hashCode,而且是散列的分布式,因此Hash索引不支持范围查找和排序的功能。

2、BTree索引和B+Tree索引

(1)BTree索引

BTree索引是平衡搜索多叉树木,如果设树的深度为2d(d > 1),高度为h,那么BTree要满足以下条件:

①每个叶子结点的高度要一样,等于h;

②每个叶子节点由n-1个key和n个指针point组成,其中d <= n <= 2d,key和point相互间隔,结点两端一定是key;

③叶子结点指针都为null;

④非叶子结点的key都是[key, data]二元组,其中key表示作为索引的键,data为键值所在行的数据。

(2)B+Tree索引

B+Tree是BTree的一个变种,如果设d为树的度,h为数的高度,B+Tree和BTree的不同主要在于:

①B+Tree中的非叶子结点不存储数据,只存储键值;

②B+Tree的叶子结点没有指针,所有键值都会出现在叶子结点上,且key存储的键值对应data数据的物理地址;

③B+Tree的每个非叶子结点由n个键值key和n个指针point组成。

(3)B+Tree对比BTree优点:

①磁盘读写代价更低;

②查询速度更稳定。

3、全文索引

FullText(全文)索引,仅可用于MyISAM和InnoDB,针对较大的数据,生成全文索引非常的消耗时间和空间。

在生成FullText索引时,会为文本生成一份单词的清单,在索引时会根据这个单词的清单进行索引。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。