数据库服务器的三种数据结构

一、数据库系统的三种数据结构
(一)逻辑结构
以逻辑抽象结构来组织数据,方便数据的查询,新增,修改和删除。

例如:索引表、树形结构。

(二)内存物理结构
以数组或者对象的方式存放在内存里,方便在内存修改和查询。

如果是C语言,一般是数组和动态内存两种。

(三)文件存储结构
把数据以一定格式组织后,存入磁盘文件里。

一般按照固定的格式来组织数据,例如数据表的每个字段占用固定的字节,对应的是某个结构体属性。


二、实际操作步骤
1、数据库用SQL语句查询。

2、数据库引擎解析SQL语句后,获得查询的表和条件。

3、调用对应的方法,读取磁盘文件的部分数据进入内存。

4、查询内存的数据,判断是否符合。

5、如果符合,把内存中数据返回。不符合返回为空。
如果是更新,还需要把内存数据写入磁盘,覆盖旧的数据,或者追加数据到磁盘文件的末尾。


三、数据库文件的跳跃读取
数据库设计时一般每部分固定字节数,查询时就能根据主键和索引,快速的跳跃读取指针,定位到目标位置读取。

例如:每条记录固定20KB,如果读取第二条记录,就能直接跳跃到位置 (起始索引 + 20 * 1024 * 1)来读取

相关推荐

  1. 数据库服务器数据结构

    2024-06-06 14:38:05       26 阅读
  2. 数据结构——顺序表数据结构差异】

    2024-06-06 14:38:05       56 阅读
  3. PostgreSQL关闭数据库服务模式

    2024-06-06 14:38:05       27 阅读
  4. Hive中array,map,struct数据结构说明

    2024-06-06 14:38:05       33 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-06 14:38:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-06 14:38:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-06 14:38:05       82 阅读
  4. Python语言-面向对象

    2024-06-06 14:38:05       91 阅读

热门阅读

  1. JVM学习-自定义类加载器

    2024-06-06 14:38:05       30 阅读
  2. Golang:使用go-nanoid生成随机的唯一ID

    2024-06-06 14:38:05       31 阅读
  3. go slice切片的详细知识(包含底层扩容)——2

    2024-06-06 14:38:05       29 阅读
  4. oracle递归查询语法

    2024-06-06 14:38:05       24 阅读
  5. Python项目实战 - 简易计算器

    2024-06-06 14:38:05       33 阅读
  6. Android 15?我想躺着

    2024-06-06 14:38:05       29 阅读
  7. Spring类加载机制揭秘:深度解析“使用”阶段

    2024-06-06 14:38:05       31 阅读
  8. 小抄 20240605

    2024-06-06 14:38:05       27 阅读