深入理解 RDBMS 学习笔记 | 青训营

74 阅读2分钟

关系数据库管理系统(RDBMS)是计算机科学的核心组成部分之一。通过深入分析其关键概念、技术和历史,可以对计算机技术有更深入的理解。

事务:RDBMS的基石

事务管理是RDBMS的关键组成部分,确保数据的完整性和一致性。

ACID特性

  • A(原子性):事务中的所有操作都是不可分割的单位。这意味着,如果其中一个操作失败,整个事务将回滚。
  • C(一致性):事务必须确保数据库从一个一致状态转移到另一个一致状态。
  • I(隔离性):每个事务必须在其他事务之外独立执行,避免产生任何冲突。
  • D(持久性):事务一旦提交,其结果必须永久存储。

并发和可靠性

高并发

  • RDBMS必须能够同时处理许多用户的请求。
  • 通过使用锁和多版本并发控制(MVCC)等机制,可以实现有效的并发控制。

高可靠

  • 高可靠意味着系统必须始终可用,不宕机。
  • 通过备份、冗余和故障切换等技术,可以增强系统的可靠性。

RDBMS的历史演进

从手工管理到现代关系数据库,RDBMS的演进反映了数据管理的不断成熟和复杂化。

  • 人工管理:最初的数据管理方法,效率低下。
  • 文件系统:提供了基本的数据存储和检索机制。
  • 数据库结构
    • 网状:数据之间的复杂关系。
    • 层次:按等级划分的数据组织。
    • 关系:数据以表的形式存储,支持灵活的查询。

SQL引擎:深入理解查询处理

Parser

  • 词法分析:将SQL文本分解为词汇单元。
  • 语法分析:使用文法规则构建抽象语法树(AST)。
  • 语义分析:确保查询符合数据库的语义规则。

Optimizer

  • RBO:基于固定规则的优化。
  • CBO:使用统计信息选择最有效的执行计划。

Executor

  • 火山模型:按层次执行查询操作。
  • 向量化/编译执行:使用高效的数据处理方法,如JIT编译。

存储引擎:数据如何存储和检索

InnoDB存储引擎

  • 内存和磁盘结构:数据在内存中缓存,并持久化到磁盘。
  • 16k单元:数据以固定大小的块存储。
  • Buffer Pool:使用LRU算法管理数据缓存。
  • Page结构:包括变长字段列表、NULL值标志位等,支持高效的数据存取。

B+ Tree

  • B+树作为索引结构,支持高效的数据检索。
  • 叶节点包含数据的实际指针,非叶节点用于指导搜索。

总结

RDBMS是一个复杂而富有深度的主题。从事务管理到查询优化,再到存储引擎的内部工作,每个部分都很复杂。