还以书上例子来说
sql
create table people( last_name varchar(50) not null, first_name varchar(50) not null, dob date not null, gender enum('m','f') no null, key(last_name,first_name,dob) );
这个 B+tree 的索引示意图能明白,但是为什么马上在下文就说"B+树索引适用于全键值,键值范围或者最左键前缀查找"
我应该如何去理解,是否和 B+tree 有着不可分割的关系,应该如何理解.
这个说法是不正确的,
如果只是你题中的优点,那么,很明显,二叉树更适合,
但是在使用中,二叉树是不稳定的,有几率变成单链表,所以还有平衡二叉树。
而且随着数据量的增大,查找效率是指数降低,因为二叉树的查找效率跟它的层级成正比。
B-树和B+树都是在二叉树的基础上(但本身并非二叉树)改良而来,是一种平衡策略。
B+树经过父节点缩小范围,然后通过叶子节点遍历查找,并非效率最高,
但是,由于数据库或文件操作设计IO,这样大大减少了IO,所以速度快。
以上是范围查找,对于点查找,hash更合适。