1、什么是索引?
索引相当于是数据库的目录,是以空间换时间的设计思想,索引的定义就是帮助存储引擎快速获取数据的一种数据结构。
所谓的存储引擎,说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法,存储引擎就是一个方法库。
2、为什么MySQL采用B+树作为索引?
为什么 MySQL 采用 B+ 树作为索引? | 小林coding
MySQL的数据是持久化的,即数据(索引+记录)是保存到磁盘上的,因为这样即使设备断电了,数据也不会丢失。
磁盘读写的最小单位是扇区,扇区的大小只有 512B 大小,操作系统一次会读写多个扇区,所以操作系统的最小读写单位是块(Block)。Linux 中的块大小为 4KB,也就是一次磁盘 I/O 操作会直接读写8个扇区。
由于数据库的索引是保存到磁盘上的,因此当我们通过索引查找某行数据的时候,就需要先