1.索引是帮助MySQL高效获取数据的数据结构。
2.索引存储在文件系统中。
3.索引的文件存储形式与存储引擎有关,存储引擎:MySQL在5.1版本之前默认存储引擎是MyISAM,在此之后默认存储引擎是InnoDB。
4.索引文件的结构如下:hash,二叉树,B树,B+树,MySQL中使用的是B+树。
为什么使用B+树而不使用其它的数据结构呢?
hash的缺点:
(1)利用hash存储的话需要将所有的数据文件添加到内存,比较耗费内存空间。
(2)等值查询的话,hash有优势,但是大部分的查询都是范围查询,这时候的hash就不合适了。
二叉树的缺点:
无论是二叉树还是红黑树,如果树的深度很深的话,IO次数会增多,影响读取效率。(提高读取效率的方法:减少IO次数或者减少IO的数据量)
B树的缺点:数据量大的也不适合,本质上还是IO次数会增多
B+树的优点:磁盘块中只存指针加范围,一个范围里面存放有更多的数据,减少树的高度,提高查询性能