Skip to content

关系型数据库是如何工作的

全局概览

数据库一般可以用如下图形来理解:

核心组件

  • 进程管理器(process manager):很多数据库具备一个需要妥善管理的进程/线程池。再者,为了实现纳秒级操作,一些现代数据库使用自己的线程而不是操作系统线程。

  • 网络管理器(network manager):网路I/O是个大问题,尤其是对于分布式数据库。所以一些数据库具备自己的网络管理器。

  • 内存管理器(memory manager):为了避免磁盘I/O带来的性能损失,需要大量的内存。但是如果你要处理大容量内存你需要高效的内存管理器,尤其是你有很多查询同时使用内存的时候。

  • 安全管理器(Security Manager):用于对用户的验证和授权。

  • 文件系统管理器(File system manager):磁盘I/O是数据库的首要瓶颈。具备一个文件系统管理器来完美地处理OS文件系统甚至取代OS文件系统,是非常重要的。

  • 客户端管理器(Client manager):用于管理客户端连接。

  • ...

工具

  • 备份管理器(Backup manager):用于保存和恢复数据。

  • 恢复管理器(Recovery manager):用于崩溃后重启数据库到一个一致状态。

  • 监控管理器(Monitor manager):用于记录数据库活动信息和提供监控数据库的工具。

  • 管理员管理器(Administration manager):用于保存元数据(比如表的名称和结构),提供管理数据库、模式、表空间的工具。

  • ...

查询管理器

  • 查询解析器(Query parser):用于检查查询是否合法

  • 查询重写器(Query rewriter):用于预优化查询

  • 查询优化器(Query optimizer):用于优化查询

  • 查询执行器(Query executor):用于执行优化后的查询

数据管理器

  • 数据存储管理器(Data storage manager):用于管理数据的存储和检索。

  • 事务管理器(Transaction manager):用于管理数据库事务,确保 ACID 属性。

  • 日志管理器(Log manager):用于记录数据库操作,用于崩溃恢复。

  • 缓存管理器(Cache manager):数据被使用之前置于内存,或者数据写入磁盘之前置于内存。

Released under the MIT License.