程序员必须了解的知识点—你搞懂mysql索引机制了吗?
一、索引是什么 MySQL官方对索引的定义为:索引(Index)是帮助MySQL 高效 获取数据的数据结构,而MYSQL使用的数据结构是: B+树 在这里推荐大家看一本书, 《深入理解计算机系统的书》 1.1 局部性原理 程序和数据的访问都有聚集成群的倾向,在一个时间段内,仅使用其中一小部分,在最近的将来将用到的信息很可能与现在正在使用的信息在空间地址上是临近的( 称空间局部性 ),或者最近访问过的程序代码和数据,很快又被访问的可能性很大( 称时间局部性 )。 1.2 磁盘预读 预读的长度一般为页(page)的整数倍 页是存储器的逻辑块,操作系统往往将主存和磁盘存储区分割成连续的大小相等的块,每个存储块称为一页(在许多操作系统中,页大小通常为4K),主存和磁盘以页为单位交换数据 1.3 简介 在使用数据库中,通常数据库查询是数据库的最主要功能之一。但每种查找算法都只能应用于特定的数据结构之上。 例如二分查找要求被检索数据有序 而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是 索引 。 索引一般以文件形式存储在磁盘上,索引检索需要磁盘I