一、索引是什么?
索引是为了加速对表中数据行的检索而创建的一种分散存储的数据结构。而且是实现了高级查找算法的数据结构,索引一般以文件形式存储在磁盘上,索引检索需要磁盘I/O操作。
文章视频讲解:后端开发中MySQL InnoDB 索引以及事务
C/C++ Linux服务器开发高级架构免费学习视频点击:C/C++Linux服务器开发高级架构师/Linux后台架构师
二、为什么要使用索引?
- 索引能极大的减少存储引擎需要扫描的数据量。
- 索引可以把随机IO变成顺序IO。
- 索引可以帮助我们在进行分组、排序等操作时,避免使用临时表。
三、磁盘存取原理
磁盘存取有以下特点:
- 寻道时间(速度慢,费时);
- 旋转时间(速度较快);
- 预读:长度为页的整倍数( 主存和磁盘以页为单位交换数据,一页4K);
- 空间连续性原理:被访问的数据,其所在的位置周围的数据也有更高的可能性被访问。
四、索引是什么实现的?
Indexes是第三方公司提供的可插拔的插件式存储引擎。
MySQL结构体系:
五、为什么选用B+树?
1、Hash索引方式
其实在我们数据库中也使用到了Hash的索引方式,数据库默认有就是这两种实现方式&#x