理解MySQL的索引

2020-03-21  本文已影响0人  李白开水

索引的结构

有如下几种被考虑过:
二叉树、红黑树、HASH、BTree、B+Tree

B树:在红黑树二叉平衡树的基础上,改成了多叉平衡树,
多叉树的节点能存储多少点,叫做度,如果度设置为4,那么一个节点能存储的点是15/16*4,也就是说,最后存储的节点可能是三个或四个。度可以是3~7。度增加了高度就小了。
但是度不可能设置无限大,这涉及到计算机的存储原理,计算机存储的最小单元是页,一页可以存储4k的数据,CPU、内存(RAM)、和磁盘交换数据都是以页为单位,一次交互可以拿一页或几页。所以为了一次性读取尽可能多的数据,把节点的大小设置为磁盘一次IO能取到数据的大小。一个节点大概是4页。
B树把数据和索引的点存储在一起。节点中的数据key从左到右递增排列,但是B树不支持范围查找。


B树.png

MySQL的两种存储引擎

存储引擎是表级别的。

赋个链接:
可以查看一些数据结构,树的插入过程等。
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

上一篇下一篇

猜你喜欢

热点阅读