当前位置: 首页 > 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://www.dtcms.com/wzjs/6291.html

相关文章:

  • 百合网网站建设与策划微信小程序开发零基础入门
  • 网站建设套模网站营销策划
  • 政府网站页面布局评价日本产品和韩国产品哪个好
  • 全球设计网网址优化一下
  • 怎么做网站页面模板安徽搜索引擎优化seo
  • 西安网站制作顶尖公西安百度爱采购推广
  • 买网站做设计参考属于什么费用seo营销方法
  • 兰州网站排名外包小程序开发哪家好
  • 德州哪个做网站做得好seo优质友链购买
  • dw做网站怎样插入表单网店怎么推广和宣传
  • 关于网站建设的题目焦作关键词优化排名
  • 自己做的网站不能用手机访问有哪些免费推广软件
  • 做的网站怎么进后台什么是搜索引擎优化?
  • 电影网站做视频联盟怎么建企业网站
  • 做电商的网站泉州关键词搜索排名
  • 做海报有什么素材网站知乎广州seo软件
  • 做网站和软件有区别吗网站seo是啥
  • 做网站有哪些导航条汕头网站制作设计
  • 建设银行 网站 字体自己怎么做网址
  • 什么网站做优化最好苏州网站建设书生商友
  • 网站建设服务亮点网上有卖网站链接的吗
  • 关于美食网站的问卷调查怎么做中国seo高手排行榜
  • 手机商城建站系统网站建设南昌企业网站建设
  • 禅城区城乡建设局网站搜索引擎seo优化怎么做
  • 代理网页 国外优化seo是什么
  • 可以做彩票广告的网站吗网站seo优化方案策划书
  • 网站开发应用短信什么是营销型网站?
  • 四川省人民政府政务网如何进行搜索引擎优化 简答案
  • 客户在我这做的网站被罚seo搜索优化费用
  • 长沙的互联网网站公司哪家好2020国内十大小说网站排名