一、如果没有索引
那么查找一个元素需要去磁盘中逐个寻找,每一次寻找都涉及到一次i/o操作,效率极其低下。
二、选择哪种数据结构作为索引
二叉树:由于数据库中数据的特殊性,主键一般都是自增序列,这样形成的二叉树都是及其不平衡的,依然需要多次i/o
红黑树:红黑树虽然是平衡的,但是每个节点只有两个叶子节点,这样存储的数据量上去后,仍然需要进行多次i/o
b树 :b树可以有多个节点,每个节点存储数据,基本满足要求,但是不够完美。
b+树:在b树的基础上,只在叶子节点存储数据,保证根节点可以存储更多的索引,最大程度使树的层次达到最小。
b+树的其他优点:MySQL将每个节点的大小设置为16kb,恰好是一次磁盘i/o的大小
MySQL——索引及其原理
最新推荐文章于 2024-06-19 08:19:38 发布