购物网站开发含代码,wordpress阿里云oss插件,wordpress主机搬家,企业宣传注册哪些论坛 网站好Hash 索引不支持顺序和范围查询#xff1b;
二叉查找树(BST)#xff1a;解决了排序的问题#xff0c;极端情况下可能会退化成线性链表#xff0c;查询效率急剧下降#xff1b; 平衡二叉树(AVL) #xff1a;通过旋转解决了平衡的问题#xff0c;但是旋转操作效率太低
二叉查找树(BST)解决了排序的问题极端情况下可能会退化成线性链表查询效率急剧下降 平衡二叉树(AVL) 通过旋转解决了平衡的问题但是旋转操作效率太低 AVL 树是严格的平衡二叉树所有节点的左右子树高度差不能超过 1 红黑树 通过舍弃严格的平衡和引入红黑节点解决了 AVL 旋转效率过低的问题但是在磁盘等场景下树仍然太高IO 次数太多 红黑树并不追求严格的平衡而是大致的平衡 节点是红色或黑色。 根是黑色。 所有叶子都是黑色叶子是NIL节点。 每个红色节点必须有两个黑色的子节点。从每个叶子到根的所有路径上不能有两个连续的红色节点。 从任一节点到其每个叶子的所有简单路径都包含相同数目的黑色节点简称黑高。 红黑树保证最长路径不超过最短路径的二倍因而近似平衡最短路径就是全黑节点最长路径就是一个红节点一个黑节点当从根节点到叶子节点的路径上黑色节点相同时最长路径刚好是最短路径的两倍 B 树 通过将二叉树改为多路平衡查找树解决了树过高的问题
B树 B 树中每个节点包括叶节点和非叶节点都存储真实的数据B树中只有叶子节点存储真实的数据非叶节点只存储键。因此能存更多记录。B树的叶节点之间通过双向链表链接因此更适合范围查询和排序查找。 InnoDB存储引擎中页的大小为16KB一般表的主键类型为INT占用4个字节或BIGINT占用8个字节指针类型也一般为4或8个字节也就是说一个页BTree中的一个节点中大概存储16KB/(8B8B)1K个键值因为是估值为方便计算这里的K取值为〖10〗^3。 也就是说一个深度为3的BTree索引可以维护10^3 * 10^3 * 10^3 10亿 条记录。这种计算方式存在误差而且没有计算叶子节点如果计算叶子节点其实是深度为4了 Mysql索引——B树是怎么提高查询效率_b树的查询效率-CSDN博客