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

一、数据库系统的三种数据结构

(一)逻辑结构

以逻辑抽象结构来组织数据,方便数据的查询,新增,修改和删除。

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

(二)内存物理结构

以数组或者对象的方式存放在内存里,方便在内存修改和查询。

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

(三)文件存储结构

把数据以一定格式组织后,存入磁盘文件里。

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


二、实际操作步骤

1、数据库用SQL语句查询。

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

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

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

5、如果符合,把内存中数据返回。不符合返回为空。

如果是更新,还需要把内存数据写入磁盘,覆盖旧的数据,或者追加数据到磁盘文件的末尾。


三、数据库文件的跳跃读取

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

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

相关推荐
麦壳饼25 分钟前
INSERT INTO:向时序表写入数据
数据库·sonnetdb
七夜zippoe33 分钟前
多 Agent 协作架构:Supervisor 模式——主管 Agent 调度实战
数据库·ai·架构·agent
我不会起名字3221 小时前
Redis 缓存与数据库一致性:先删缓存还是先更新库的 4 种方案
数据库·redis·缓存·一致性·延迟双删
在繁华处1 小时前
1.2 Harness 工程:模型之外的竞争
数据库
云贝贝贝1 小时前
【无标题】TDSQL 分片键怎么选?选错等于数据倾斜加跨分片慢查询
运维·服务器·数据库·腾讯云
IvorySQL1 小时前
VACUUM FULL 之后 ROWID 就废了? IvorySQL 兼容性实测
数据库·人工智能·ai·postgresql·开源
A.说学逗唱的Coke1 小时前
【人工智能专题】PolarDB 深度解析:存算分离到 AI Lakebase,云原生数据库的架构演进与实战指南
数据库·人工智能·云原生
我不会起名字3221 小时前
InnoDB 间隙锁与死锁:两个 UPDATE 互相等待的 3 个原因
数据库·mysql·事务·innodb·锁
ClickHouseDB1 小时前
ClickHouse Terraform Provider 正式支持 ClickStack 资源管理
网络·数据库·python
步行cgn1 小时前
Spring 事务属性详解
java·数据库·spring