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

query processor
对query进行处理,包括语法,翻译,优化等。由4个功能组件构成
- Parser: 检查query 语句的语法
- Query Rwrite: 将语句转换成parse tree
- optimizer: 只负责优化query,给出query plan。向storage manager 发送数据请求
- executor: 当收到storage manager 的数据后,运行query。
transactional storage manager
- access methods: 只记录index,维护B+树。
- buffer manager: 给disk,main memory,cache memory 分配资源。这三个部分大小,速度,价格都不一样,需要合理分配。
- lock manager:负责多线程,确保线程安全
- log manager:确保系统发生错误后数据恢复
Process manager
- Admission Control: 控制请求数量,确保系统不会过载
- connection manager: 负责服务器和客户端的连接
shared utillities
- admin utilities : 管理员权限和功能
- replication services:为分布式存储的数据库提供同步服务
- disk space manager:硬盘空间管理
- menory manager:内存空间管理
不同query plan的效率差异

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

进行优化以后, 新的query plan 先过滤一张表,然后进行拼接排序。效率更加高
index
index 是以B+树的形式存储的
使用B+树的优点
未完