网站备案 内容,九江商城网站建设,万网站建设,个人注册网站怎么注册数据库索引不只一种实现方法#xff0c;但是其中最具代表性#xff0c;也是我们面试中遇到最多的无疑是B树。
索引为什么选择B树
数据量很大的查找#xff0c;是不能直接放入内存的#xff0c;而是需要什么数据就通过磁盘IO去获得。
红黑树#xff0c;AVL树等二叉查找树…数据库索引不只一种实现方法但是其中最具代表性也是我们面试中遇到最多的无疑是B树。
索引为什么选择B树
数据量很大的查找是不能直接放入内存的而是需要什么数据就通过磁盘IO去获得。
红黑树AVL树等二叉查找树虽然效率高但是树的高度也大每次访问结点都需要一次IO而B树B树这种多路查找树可以使得树的高度变小。
在最坏的情况下一次IO就只能获得一个结点的值所以在最坏的情况下不管是红黑树还是AVL树、B树、B树他们对应的磁盘操作是树的高度。
索引为什么不选择B树
B树只适合随机检索而B树同时支持随机检索和顺序检索B树空间利用率更高可减少I/O次数磁盘读写代价更低。一般来说索引本身也很大不可能全部存储在内存中因此索引往往以索引文件的形式存储的磁盘上。这样的话索引查找过程中就要产生磁盘I/O消耗。B树的内部结点并没有指向关键字具体信息的指针只是作为索引使用其内部结点比B树小盘块能容纳的结点中关键字数量更多一次性读入内存中可以查找的关键字也就越多相对的IO读写次数也就降低了。而IO读写次数是影响索引检索效率的最大因素B树的查询效率更加稳定。B树搜索有可能会在非叶子结点结束越靠近根节点的记录查找时间越短只要找到关键字即可确定记录的存在其性能等价于在关键字全集内做一次二分查找。而在B树中顺序检索比较明显随机检索时任何关键字的查找都必须走一条从根节点到叶节点的路所有关键字的查找路径长度相同导致每一个关键字的查询效率相当。B-树在提高了磁盘IO性能的同时并没有解决元素遍历的效率低下的问题。B树的叶子节点使用指针顺序连接在一起只要遍历叶子节点就可以实现整棵树的遍历。而且在数据库中基于范围的查询是非常频繁的而B树不支持这样的操作。增删文件节点时效率更高。因为B树的叶子节点包含所有关键字并以有序的链表结构存储这样可很好提高增删效率。