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

数据库:表和索引结构

        表和索引是如何组织和使用的,在很大程度上取决于具体的关系型DBMS,然而它们都依赖于大致相似的结构和原则。

索引页和表页

        表行和索引行都被存储在页中。页的大小一般为4kb,这是一个可以满足大部分需求的大小,也可以是其他大小,这不是一个重要的考虑点。页的大小仅仅决定了一个页可以存储多少个索引行、表行,以及一共需要多少页来存储表或者索引。

        缓冲池和I/O活动都是基于页的,一次将一个完整的页读取到缓冲池。

索引行

        对于一个唯一索引,一个索引行等同于叶子页中的一个索引条目。字段的值从表中复制到索引上,并加上一个指向表中记录的指针。

        对于一个非唯一索引,一个特定的索引值所对应的索引行应该被想象成独立的索引条目,每一个索引条目都含有相同的索引值,但是却有不同的指针。

        大多数情况下,非唯一索引的实际存储方式是一个索引值后带着多个指针。

索引结构

        非叶子页通常包含着一个键值,以及一个指向下一层级页的指针,该键值是下一层级页中的最大键值,多个索引层级按照这一方式逐层建立,直到只剩下一个页——根页。这种组织方式的索引叫做B树索引。通过这种索引方式查找任何一条索引记录都需要访问相同数量的非叶子页。

表行

        每一个索引行都指向表中相对应的一行记录,指针通常标识了记录所存放的页以及它在页中的位置。

        表中的每一行除了存储行的字段以外,还包含了一些控制信息用于定义行并帮助DBMS处理插入或者删除操作。

        当加载表或者向表中插入记录的时候,表中记录的顺序可以被定义成和它的某一个索引记录相同的顺序。在这种情况下,当索引行被按顺序处理时,对应的表行也将依照相同的顺序逐个处理,这是一个效率很高的过程。

http://www.dtcms.com/a/337452.html

相关文章:

  • 【datawhale组队学习】n8n TASK01
  • 知识蒸馏 Jensen-Shannon散度
  • 为什么品牌更愿意为新品打广告?
  • 机器学习——XGBoost算法
  • 力扣2道dp
  • easyexcel fastexcel 官方文档 easyexcel合并单元格
  • 项目会议怎么开才有效
  • 【前端面试题】JavaScript 核心知识点解析(第十四题解析到第二十二题)
  • 【Mac】【Minecraft】关于如何在Mac上搭建基岩版MC服务器的方法
  • 前端Element-plus的选择器 el-select 清空内容时,后端对应的更新方式,支持更新为null
  • 【秋招笔试】2025.08.09网易秋招机考
  • openEuler系统备份与恢复方法
  • 【DL学习笔记】交叉熵损失函数详解
  • 无人机视角违章建筑识别分割数据集labelme格式343张2类别
  • AI测试自愈率80%!语音编程提效10倍——2025软件AI化爆炸级突破
  • 端面试题大汇总二
  • 分库分表数据源如何清洗同步到目标表
  • 大数据计算引擎(二)——Flink
  • 大数据计算引擎(四)—— Impala
  • 【matlab】考虑源荷不平衡的微电网鲁棒定价研究
  • Pandas 数据导入导出、索引、分组聚合与可视化
  • (第十八期)图像标签的三个常用属性:width、height、border
  • 特赞内容运营解决方案,AI重构品牌内容价值链
  • 云计算学习100天-第21天
  • 整体设计 之“凝聚式中心点”原型 --整除:智能合约和DBMS的深层融合 之2
  • 将 iPhone 联系人转移到 Infinix 的完整指南
  • MCP ZAP Server:一款能够利用大模型替代人工进行Web安全扫描的开源MCP
  • Vue深入组件:组件 v-model 详解2
  • 网络安全巡检系统的功能组成和作用
  • sizeof和strlen的对比分析