索引的分类------面试准备,索引大部分知识

基础知识储备

IO读取方式:顺序读写 和 随机读写

顺序读写:速度比较快,局部性原理:发现程序和数据的访问都有聚集成群的倾向,在一个时间段内,仅使用其中一小部分(空间局部性),或者最近访问过的程序代码和数据,很快又被访问的可能性很大(时间局部性)。

 

磁盘预读(预读的长度一般为页(page)的整数倍)

 页是存储器的逻辑块,操作系统往往将主存和磁盘存储区分割为连续的大小相等的块,每一个存储块称为一页(页大小通常为4k), 主存和磁盘以页为单位交换数据

 

索引是什么?

索引是帮助Mysql高效获取数据的数据结构

索引存储在文件系统中

索引的文件存储形式与存储引擎有关

索引文件的结构:

hash:数组加链表的数据结构。

缺点:1、利用hash存储的话需要将所有的数据文件添加到内存,比较消耗内存空间

2、等值查询速度快,但是范围查找用不了

二叉树、红黑树:

缺点:都会因为树的深度过深而造成IO次数变多,影响数据读取的效率

 

B树:

特点:

1、所有的键值分布在整颗树中

2、搜索有可能在非叶子节点结束,在关键字全集内做一次查找,性能逼近二分查找

3、每个节点最多拥有m个子树

4、根节点至少有两个子树

5、分支节点至少拥有m/2颗子树

6、所有叶子节点都在同一层,每个节点最多可以有m-1个key,并且以升序排列

缺点:

每一个磁盘块的空间是有限制的,比如是4K,这个时候,有可能因为data的数据很大,而导致树的深度加深

B+树

 

三次IO就可以取到值

 

InnoDB

 

 

索引的分类

mysql索引的五种类型:主键索引、唯一索引、普通索引和全文索引、组合索引

主键索引:主键是一种唯一性索引,但它必须指定为PRIMARY KEY,每个表只能有一个主键

唯一索引:索引列的所有值都只可能出现一次,即必须唯一,值可以为空

普通索引:基本的索引类型,值可以为空,没有唯一性的限制、

 

MySQL的存储引擎

这三行知识,必须得说得出来

 

 

聚簇索引:Innodb 的数据文件只有一个,索引和数据放在一个文件

非聚簇索引:MyLSAM的索引分为两个文件,索引和数据是分开的

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你在狗叫什么、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值