B+ 树和 B 树的差异:
B+树中非叶子节点的关键字也会同时存在在子节点中,并且是在子节点中所有关键字的最大值
(或最小)。
B+树中非叶子节点仅用于索引,不保存数据记录,跟记录有关的信息都放在叶子节点中。而B树
中, 非叶子节点既保存索引,也保存数据记录 。
B+树中所有关键字都在叶子节点出现,叶子节点构成一个有序链表,而且叶子节点本身按照关键
字的大小从小到大顺序链接。
009 一个b+树中大概能存放多少条索引记录?
真实环境 中一个页存放的记录数量是非常大的(默认16KB),假设指针与键值忽略不计(或看做
10个字节),数据占 1 kb 的空间:
如果B+树只有1层,也就是只有1个用于存放用户记录的节点,最多能存放 16 条记录。
如果B+树有2层,最多能存放 1600×16=25600 条记录。
如果B+树有3层,最多能存放 1600×1600×16=40960000 条记录。
如果存储千万级别的数据,只需要三层就够了
B+树的非叶子节点不存储用户记录,只存储目录记录,相对B树每个节点可以存储更多的记录,树的高度会更矮
胖,IO次数也会更少。
010 使用B+树存储的索引crud执行效率如何?
c 新增
O(lognN)
N = 高度
011 什么是自适应哈希索引?
自适应哈希索引是Innodb引擎的一个特殊功能,当它注意到某些索引值被使用的非常频繁时,会在内
存中基于B-Tree所有之上再创建一个哈希索引,这就让B-Tree索引也具有哈希索引的一些优点,比如快
速哈希查找。这是一个完全自动的内部行为,用户无法控制或配置
使用命令