

二叉需要的深度太深了,在数据量大的时候

树的高度太高了, 磁盘访问太频繁
500W行数据。

为了减少树的高度,一个节点就多存点key

B树每个节点的大小有限制,每个节点对应一个大的磁盘块,每次load一个节点的数据全部从磁盘中到内存中(一次IO),然后再内存中查找,所以非常快。

B-tree左侧数据都小于右侧数据,每个节点的数据中左面的也小于右面的。




树的高度一般控制在2-4层





所以InnoDB必须要有主键,你若是没有显示创建索引,那么MySQL也会隐式的创建一个隐藏列作为主键索引。
如果存储的都是UUID,在B+tree中 没法比大小(字符串比大小性能很低,转码。。。),而且占用更多的空间。为什么用自增呢?
避免原有的叶子节点分裂,




网友评论