MySQL索引的道理
发布时间:09/01 来源:未知 浏览:
关键词:
带次序拜访的B+树简图
部分性道理和磁盘预读
那么为何数据库系统普遍运用B+树作为索引构造,而不选例如红黑树其他构造呢?
第一要先来介绍下部分性道理和磁盘预读的概念。
个别来说,索引自身较大,不会全部存储在内存中,会以索引文件的情势存储在磁盘上。所以索引查寻数据历程中就会发生磁盘IO操纵,而磁盘IO相关于内存存取非常迟缓,因而索引构造要尽量减少磁盘IO的存取次数。
为了减少磁盘IO,磁盘往往会进行数据预读,会从某位置开端,预先向后读取一定长度的数据放入内存,即部分性道理。由于磁盘次序读取的效率较高,不需要找道工夫,因而可以提高IO效率。
预读长度个别为页的整数倍,主存和磁盘以页作为单位交流数据。当需要读取的数据不在内存时,触发缺页中止,系统会向磁盘发出读取磁盘数据的要求,磁盘寻到数据的起始位置并向后陆续读取一页或几页数据载入内存,然后中止返回,系统继续运转。而个别数据库系统设计时会将B+树节点的大小设定为一页,这样每个节点的载入只需要一次IO。
以上就是MySQL索引的道理的细致内容,更多请关注 百分百源码网 其它相干文章!