0
0
0
0
博客/.../

数据库百科|关系型数据库是怎么工作的?

 __joy_claw  发表于  2026-03-26
原创

数据库百科|关系型数据库是怎么工作的?

关系型数据库的工作方式,可以概括为:先用表、行、列和约束来组织数据,再通过 SQL 描述查询和修改需求,由数据库内核负责解析语句、生成执行计划、访问索引或数据页、控制事务与并发,并最终把结果返回给应用,同时通过日志和持久化机制保证数据可恢复。它的核心目标是在结构化数据场景下,同时兼顾正确性、可查询性和可管理性。

一、从数据模型开始工作

关系型数据库首先通过关系模型组织数据。实践中通常表现为:

  • 数据被存放在表中

表由列定义结构,由行保存具体记录

  • 主键用于标识唯一记录
  • 外键用于描述表之间的关系
  • 约束用于保证数据合法性

例如,在订单系统中,用户表、订单表、商品表可以分别建模,再通过主键和外键建立关联。这种结构让数据具备明确语义,也便于后续查询与维护。

二、应用通过 SQL 与数据库交互

应用程序不会直接操作底层存储页,而是通过 SQL 发出请求,例如:

  • 查询数据
  • 插入数据
  • 更新数据
  • 删除数据
  • 创建或修改表结构

数据库收到 SQL 后,会经历一套内部处理流程,而不是简单逐行扫描。

三、数据库先解析并理解 SQL

当一条 SQL 到达数据库后,系统通常会执行以下步骤:

词法和语法解析:检查语句是否符合语法规则。

语义分析:确认表、列、函数、权限是否有效。

查询重写或优化准备:对语句进行等价转换。

生成执行计划:决定用什么路径访问数据。

这一步的目标,是把“人写的 SQL”转换成“数据库能高效执行的内部操作计划”。

四、优化器决定怎么取数据

关系型数据库通常有查询优化器。优化器会结合统计信息评估不同执行方案,例如:

  • 使用哪一个索引
  • 先访问哪张表
  • 表连接采用嵌套循环、哈希连接还是排序合并
  • 是否需要排序、分组、临时中间结果

优化器的核心是以较低代价完成查询。执行同一条 SQL,在不同数据分布、索引条件和统计信息下,执行计划可能不同。

五、存储引擎负责真正读写数据

执行计划确定后,数据库会进入实际读写阶段。底层通常不是直接逐条读写文件,而是借助存储引擎和页式管理机制:

  • 数据和索引通常按页组织
  • 热点数据会缓存在内存缓冲区中

读取时优先命中缓存,未命中再访问磁盘

写入时先修改内存页,再通过日志和刷盘机制落盘

这意味着关系型数据库在逻辑上操作“表和行”,在物理上操作“页、索引、日志和缓存”。

六、索引帮助快速定位数据

如果没有索引,很多查询只能扫描大量数据。关系型数据库常通过 B+ 树等索引结构加速访问:

  • 等值查询可快速定位目标记录
  • 范围查询可利用有序结构顺序访问
  • 排序、分组、连接在合适条件下也能受益

索引本质上是为查询路径提供捷径,但索引越多,写入维护成本通常也越高,因此需要平衡。

七、事务保证操作的正确性

关系型数据库的一大核心能力是事务。事务用于把一组操作当作一个整体处理,常见目标包括:

要么全部成功,要么全部失败

  • 中途出错时可回滚
  • 并发环境下尽量避免彼此破坏

例如转账场景中,扣款和加款通常必须同时成功或同时失败,这就需要事务机制保障。

八、并发控制让多人同时操作同一份数据

当多个会话同时访问数据时,关系型数据库需要控制并发。常见机制包括:

锁:防止相互冲突的读写同时发生

MVCC:让读操作尽量不阻塞写操作

隔离级别:在一致性和性能之间做权衡

数据库要解决的问题不是“一个人怎么操作数据”,而是“很多人同时操作时如何尽量正确且高效”。

九、日志与恢复机制保证持久化

为了防止宕机导致数据丢失,关系型数据库通常使用多种日志与恢复机制,例如:

预写日志或重做日志:先记录修改意图,再真正落盘

回滚日志:支持事务失败时撤销

归档日志或 binlog:支持复制、审计和恢复

检查点:缩短崩溃恢复时间

因此,即使系统突然中断,数据库通常也可以根据日志把数据恢复到一致状态。

十、结果返回给应用,并继续接受下一条请求

一条 SQL 执行完成后,数据库会:

  • 返回查询结果或受影响行数
  • 提交或回滚事务状态
  • 释放部分资源或锁
  • 记录必要日志和统计信息

随后系统继续处理下一条请求,形成持续循环。

关系型数据库为什么适合很多核心业务

关系型数据库之所以长期广泛使用,主要因为它同时具备:

  • 清晰的数据结构
  • 成熟的 SQL 查询能力
  • 强事务和一致性保障
  • 较成熟的优化器与运维生态
  • 适合核心业务系统长期治理

尤其在订单、账户、库存、合同、财务、组织管理等场景中,这些能力非常关键。

关系型数据库的工作机制也带来边界

关系型数据库并非在所有场景都最优。其边界常见于:

  • 超大规模水平扩展较复杂
  • 高度灵活、频繁变化的数据结构可能不够友好

海量日志、时序或图关系场景有时更适合专用数据库

因此,理解它“怎么工作”,也有助于理解它“适合做什么、不适合做什么”。

总结

关系型数据库的工作过程,本质上是把结构化数据组织成关系模型,用 SQL 表达操作需求,再通过解析、优化、索引访问、事务控制、并发管理和日志持久化等机制完成可靠的数据读写。它既是一个存储系统,也是一个查询系统、事务系统和治理系统。正因为这些机制协同工作,关系型数据库才能长期支撑大量关键业务。

0
0
0
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论