当前位置: 首页 > wzjs >正文

南部网站建设山西建设厅网站密钥

南部网站建设,山西建设厅网站密钥,顺德品牌网站建设咨询,工程与建设官网不管是二叉搜索树还是多路搜索树,只要是搜索树,那么节点的关键字必须是可以通过某种方式进行大小比较的一,选择BTree的原因1.常用的搜索二叉树的,平衡二叉树,红黑树 等,由于每个节点只能存放一个索引关键字…

不管是二叉搜索树还是多路搜索树,只要是搜索树,那么节点的关键字必须是可以通过某种方式进行大小比较的

一,选择B+Tree的原因

1.常用的搜索二叉树的,平衡二叉树,红黑树 等,由于每个节点只能存放一个索引关键字,如果数据量比较大的话,就会导致树的高度很高,这样在查询的过程中就有可能需要多次从磁盘加载索引的文件的中的节点数据,每次加载都需要进行IO操作,导致查询性能比较低

2.B-Tree 是一种平衡多路搜索树,每个节点可以存储多个索引关键字,一个父节点可以有多个子节点(大于2个),一个N阶B-Tree每一个节点最多包含N-1个索引关键字,最多有N个子节点,这样本来是可以大大降低搜索树的高度,但是由于B-Tree的非叶子节点中除了索引关键字,还包含这些关键字所对应的行数据,这样在每个节点的存储大小固定的情况下,如果每一行的数据很大的话,就会导致每个节点包含的索引关键字变少,同样也有可能会使得树的高度比较高。B-Tree对范围查询范围查找的支持也不是太好

3.B+Tree是在B-Tree基础上进行优化得来的一种多路搜索树,B+Tree的非叶子节点上仅存储索引关键字(组合索引存储多个字段的值),不存储数据,数据只存储在叶子节点上,并且数据是按照顺序拍列的。B+Tree包含数据的叶子节点之间是通过双向列表连接的,而且是按照大小顺序连接的,支持正向(next)和反向(prev)查询,例如 ORDER BY Key DESC。非叶子节点不存放数据,只存放索引关键字,这样相同存储容量的非叶子节点,可以存储更多的索引关键字,也可以有更多的子节点,所以树的高度也可以降低

1. 非叶子节点的结构

  • 存储内容
    • 一组有序的索引键K1, K2, ..., Km-1)。
    • m 个子节点指针P0, P1, ..., Pm),其中:
    • P0 指向所有键 < K1 的子树。
    • P1 指向 K1 ≤ Key < K2 的子树。
    • ...
    • Pm 指向所有键 ≥ Km-1 的子树。 
  • 存储的结构
    • 非叶子节点
    • [P0] [K1=10] [P1] [K2=20] [P2] [K3=30] [P3]
    • 若查找 Key=15,会进入 P1 指向的子树(因为 10 ≤ 15 < 20)。

2. 从非叶子节点定位到叶子节点的步骤

(1) 初始查找(根节点)
  • 从根节点开始,通过二分查找定位目标Key所在的子节点指针。
    • 若根节点是叶子节点(B+树高度为1),直接返回数据。
    • 否则,找到第一个  目标Key的索引键,选择其左侧的子节点指针。
(2) 递归向下搜索
  • 对选中的子节点(可能是非叶子节点或叶子节点)重复以下操作:
    1. 判断节点类型
      • 如果是非叶子节点:继续二分查找,定位下一个子节点指针。
      • 如果是叶子节点:停止搜索,从叶子节点中提取数据(或确认数据不存在)。
    2. 移动到子节点:根据选中的指针访问下一层节点。
(3) 终止条件
  • 到达叶子节点时,叶子节点可能包含:
    • 实际数据(如数据库记录)。
    • 指向数据的指针(如主键、行地址等)。
    • 若未找到目标Key,则说明数据不存在。

[Root: P1(K=10), P2(K=20), P3]
/                    |                 \
[P1: K=5]    [P2: K=15]    [P3: K=25]  (假设非叶子节点)
/       \             /       \              /      \
[L1]    [L2]       [L3]    [L4]      [L5]    [L6]

  • 查找 Key=15
    1. 根节点:10 ≤ 15 < 20 → 选择 P2
    2. P2 节点:键为 15,其 P1 指向 L3(假设 P1 是左子指针,P2 是右子指针)。
    3. 进入 L3(叶子节点),查找 Key=15 的记录。
  • 查找逻辑
    1. 目标Key K 在非叶子节点中匹配时,不会直接返回数据,而是根据 K 的位置选择子节点指针,继续向下搜索。

4. 关键点:非叶子节点的键是子树的“分隔符”

  • 非叶子节点的键
    • 不代表实际数据,而是用于划分子树的范围
    • 例如,若非叶子节点包含键 [10, 20],则:
      • P0 子树的所有键 < 10
      • P1 子树的所有键 [10, 20)
      • P2 子树的所有键 ≥ 20

总结

  1. 非叶子节点的作用:作为索引的“路由表”,通过键值范围划分子树。
  2. 定位过程
    • 从根节点开始,二分查找目标Key所在的子节点指针。
    • 递归进入子节点,直到到达叶子节点。
  3. 关键特性
    • 非叶子节点的键是子树的分隔符,不存储实际数据。
    • 所有数据最终必须通过叶子节点访问,保证范围查询和顺序访问的效率。

二,mysql常见面试题

        1.InnoDB是mysql的一种存储引擎,它会为每个表创建一个主键索引,如果表没有明确的指定主键索引,InnoDB会使用一个隐藏的,自动生成的主键来创建索引(row_id)。这个隐藏的索引使用的是B+Tree的结构

        2.hash索引只在Memory存储引擎才可以使用

        3.聚集索引和非聚集索引(都是使用的B+Tree)

                1.聚集索引--索引和数据存储在同一个文件中(InnoDB)

                2.非聚集索引--索引和数据存储在不同的文件中(MyISAM),查找的时候,先在索引文件中找到要查询的key对应的数据在数据文件中的地址,拿着地址去数据文件加载对应的数据

        4.一级索引(InnoDB主键索引) 和 二级索引 (InnoDB中除了主键索引以外的其他索引)

                1.一级索引的叶子节点直接存放的就是数据

                2.二级索引的子节点存储的是主键的值,还需要拿着从二级索引中查到主键值,去一级主键索引中查找对应的数据

        5.回表

                先通过二级索引找到主键的值,再去主键索引中查找最终数据的过程叫做回表

        6.覆盖索引

                如果sql语句要查寻的所有字段都包含在某个索引中(也能是组合索引),这样要查询的数据在索引中就可以全部获取到,就不用再去主键索引中根据主键再回表查一次,这样就达到了索引覆盖,可以大大提高查询效率

        7.索引下推

                

        8.单列索引和组合索引

                1.单列索引就是只包含一个字段的索引,数据的排序就是按照索引列的关键字的大小拍需

                2.组合索引是包含多个字段的索引,数据的排序是,先按照最左边的索引字段的大小排序,当最左边的列的值大小相等时,再按照它后面的索引列值的大小排序,依次类推。


文章转载自:

http://7DGB5moh.mkydt.cn
http://XZwlyxLX.mkydt.cn
http://pUysOun3.mkydt.cn
http://Q2vyAzIJ.mkydt.cn
http://LACUHoEn.mkydt.cn
http://8oPFZNdz.mkydt.cn
http://pOnKrrkm.mkydt.cn
http://fg7k3dT8.mkydt.cn
http://O13krCKQ.mkydt.cn
http://UU9ytDYM.mkydt.cn
http://z83yqtyd.mkydt.cn
http://DfHcjdUL.mkydt.cn
http://yCbMbV6l.mkydt.cn
http://1ZaDAVqW.mkydt.cn
http://AkcIklvs.mkydt.cn
http://pxKAPn5c.mkydt.cn
http://dvC5q2RQ.mkydt.cn
http://CBUPlDbW.mkydt.cn
http://8MjPPtow.mkydt.cn
http://vLr8mSJZ.mkydt.cn
http://A2gMEEHS.mkydt.cn
http://6Ct1Tt9p.mkydt.cn
http://rrfP40pq.mkydt.cn
http://bCuFDVUR.mkydt.cn
http://2B8AZ8TF.mkydt.cn
http://bgIaNjoW.mkydt.cn
http://iMLgeq9c.mkydt.cn
http://sicmaZMT.mkydt.cn
http://fQW5tkFv.mkydt.cn
http://DZVIR5GI.mkydt.cn
http://www.dtcms.com/wzjs/686165.html

相关文章:

  • 网站初期做几个比较好兴义之窗网站怎么做
  • 备案主体负责人和网站负责人石家庄企业做网站
  • 哪个推广网站好哪里卖网站模板
  • 网站建设与管理名词解释延吉建设局网站
  • 做网站是自己公司做好还是外包好html做的网站怎么弄
  • 外贸seo网站0基础网站建设教程视频
  • 网站备案查询中心大学有吗网站建设
  • 网站在百度无法验证码怎么办小白一步步做网站
  • 做家具网站江苏建工
  • 网站建设作业多少钱模块建站工具
  • 作为一个专业的网页制作人员任丘网站优化
  • 影视传媒公司网站模板旅行网站开发意义
  • 做任务挣钱的网站聚河南高端网站
  • 有名的产品设计公司seo推广软件代理
  • 做博客和做网站大学生为什么不去中建
  • net网站开发环境电脑培训机构哪里有
  • 动漫网站开发 百度一下wordpress 产品主题
  • 广安市国土资源局网站建设线上设计师接单
  • 企业网站建设的方法有哪些计算机论文8000到10000字
  • 天水市秦州区作风建设年网站用凡科帮别人做网站
  • 国内知名的网站建设企业怎么自己注册网站
  • 优秀个人网站欣赏会员卡管理系统多少钱一套
  • 商场网站设计建设教育培训的网站
  • 公司建网站一般多少钱推广策划公司
  • 怎么查询网站是否收录网页无法访问手机
  • 沧州大型网站建设百度指数功能模块
  • 江苏做网站xlech5模板下载有哪些网站
  • 莱芜泉网站建设做鲜花的网站有哪些
  • 九尾狐建站网址免费网站建设找哪家
  • 仿牌外贸网站制作ps如何做切片网站按钮