数据库内部系统

系统组成

数据库主要分为四大部分: query processor,storage manager,shared utilities 和 Process Manager

query processor

对query进行处理,包括语法,翻译,优化等。由4个功能组件构成

  1. Parser: 检查query 语句的语法
  2. Query Rwrite: 将语句转换成parse tree
  3. optimizer: 只负责优化query,给出query plan。向storage manager 发送数据请求
  4. executor: 当收到storage manager 的数据后,运行query。

transactional storage manager

  1. access methods: 只记录index,维护B+树。
  2. buffer manager: 给disk,main memory,cache memory 分配资源。这三个部分大小,速度,价格都不一样,需要合理分配。
  3. lock manager:负责多线程,确保线程安全
  4. log manager:确保系统发生错误后数据恢复

Process manager

  1. Admission Control: 控制请求数量,确保系统不会过载
  2. connection manager: 负责服务器和客户端的连接

shared utillities

  1. admin utilities : 管理员权限和功能
  2. replication services:为分布式存储的数据库提供同步服务
  3. disk space manager:硬盘空间管理
  4. menory manager:内存空间管理

不同query plan的效率差异

以上图为例,此query plan 将两个表拼接后再进行过滤排序。如果两个表的数据量都很大,拼接会非常耗资源。

进行优化以后, 新的query plan 先过滤一张表,然后进行拼接排序。效率更加高

index

index 是以B+树的形式存储的

使用B+树的优点

未完