几种数据结构
二叉树
特点
每个节点有两个子节点
左子节点数据小于父节点,右子节点数据大于父节点
不采用原因:可能会存在单边二叉树
红黑树
特点
节点为红色或者黑色
根节点为黑色
每个红色节点的叶子节点为黑色
不采用原因:数据量较大时树的高度会非常深;且在插入时要做自旋等操作
BTree
特点
叶子节点具有相同的深度
叶子节点指针为空
节点中的数据索引从左到右递增排列
B+Tree
特点
BTree变种
非叶子节点不存储数据、只存储索引(可以放更多的索引)
叶子节点不存储指针
顺序访问指针,提高区间访问能力
mysql改造叶子节点,各叶子节点之间设置了双向指针(解决了范围查找问题)
mysql节点大小
通过:show global status like 'innodb_page_size';<br>返回值:16384,即16K = 2^16
每个索引元素大小为:8Byte(索引)+6Byte(指针)
所以每个节点可存储的数据量为:16k/14 = 1170
数据不存储在非叶子节点(可存储更多索引)<br>