索引
Mysql
1、索引,k-v对,k是索引字段的字段值,v-这条数据在磁盘上的位置指针
2、实际是B-Tree
3、
使用二叉树、红黑树、B-Tree等树状结构存储索引,是为了快速查找,当极端情况,比如数据是递增的,二叉树就会出现严重的倾斜,虽然红黑树可以自平衡,但是当数据量足够大 时,树的高度还是很高,达不到我们创建索引是为了快速查找的目的。
树的每个节点16k,可以使用sql查看<SHOW GLOBAL STATUS LIKE 'Innodb_page_size'>
我们需要找到一种高度可控的树状数据结构,即在大数据量下,树的高度尽可能的最小,这样就可以最快速度查找到,
每个节点16k,我们可以在每个节点存储多个k-v,这样就可以降低树的高度;
B-Tree,每个节点就是存储了多个k-v,
B+Tree,是B-Tree的变种,它把非叶子节点只存储索引,不存储值,叶子节点存储了所有的k-v,非叶子节点对索引做了冗余,使得每个非叶子节点的存储量更大,使得树的高度更低,查找速度更快
4、