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

数据库:表和索引结构

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

索引页和表页

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

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

索引行

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

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

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

索引结构

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

表行

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

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

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

http://www.xdnf.cn/news/1325287.html

相关文章:

  • 如何新建一个自己的虚拟环境
  • 实践笔记-小端模式下的寄存器数据输入技巧;图形化界面配置注意事项。
  • AI应用商业化加速落地 2025智能体爆发与端侧创新成增长引擎
  • 安装pnpm i -D @types/wechat-miniprogram报错,版本不匹配
  • 继承——Java中的“家族传承”
  • JavaSE高级-02
  • Read Frog:一款开源AI浏览器语言学习扩展
  • 网络基础——协议认识
  • 视觉语言导航(2)——VLN RNN TRANSFORMER 与ATTENTION 2.2+LSTM(单独一节)
  • 构建情感智能体:下一代AI心理助手的架构与实践
  • Lucene 8.5.0 的 `.pos` 文件**逻辑结构**
  • 基于JS实现的中国象棋AI系统:多模块协同决策与分析
  • leetcode4_452 and 763
  • 一道同分排名的SQL题
  • Django开发Web应用
  • Dubbo 的SPI
  • 15.三数之和
  • vue3 el-table-column 列头添加 图标按钮
  • 使用websockets中的一些问题和解决方法
  • day25|学习前端js
  • Day7--滑动窗口与双指针--1695. 删除子数组的最大得分,2958. 最多 K 个重复元素的最长子数组,2024. 考试的最大困扰度
  • JavaSE——高级篇
  • Java面试宝典:Redis 入门与应用
  • Poisson分布:稀有事件建模的理论基石与演进
  • 用随机森林填补缺失值:原理、实现与实战
  • 力扣hot100:移动零问题的巧妙解决:双指针与原地交换策略(283)
  • 开发避坑指南(28):Spring Boot端点检查禁用失效解决方案
  • Vue3 中使用 Element Plus 完整指南
  • Spring AI Alibaba 项目接入兼容 OpenAI API 的大模型
  • 杂记 05