1.为什么用B+树 不用hash
hash可以很好地查询单个,但不支持范围查询。
2.为什么INOODB引擎建议用使用自增主键
如果表没有主键则mysql会从第一列开始找没有重复的一列作为索引列如果都找不到合适的则会自己维护一个索引列,增大开销。数字类型的主键排序更好更快。自增保证顺序,可以减少树为了维护自身平衡所带来的时间损耗。
B+树每一个节点可以存16kb的数据,一个节点存多个索引key不存具体的数值,可以保证一个节点尽可能多的存key,保证整个B+树可以更胖更矮,查询效率更快。
B+树叶子节点相互之间有指针,保证从左到右顺序由小到大,范围查询的时候只要找到其中最小的那个一次找节点就可以,方便范围查找