数据库引擎技术架构分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Y
集合操作
N
集合操作
SPJ优 化 系 统 表 :pg_class等 Planner: 逻 辑 查 询 优 化 Planner: 物 理 查 询 优 化 统计数据 代价估算器
分解集合操作为普通 SQL
非 SPJ优 化
执行计划
Executer:执 行 器
PostgreSQL V9.2.3
执行结果
2 整体架构
集群 架构
高可用集群 高可靠高可用集群 分布式NewSQL的三条路
扩展­­数据刀片
1 前端架构
1 前端架构
1.1 连接(APP、工具、接口)与协议
App
Apps
DB Tools
DB Server
DB Server
Apps 连接池 JDBC/ODBC…
通 讯 协 议
DB Tools
Apps
JDBC/ODBC…
3 语义分析
SELECT SUM(a1), id1 FROM t1 LEFT JOIN t2 on a1=a2 LEFT JOIN t3 on b2=b3 WHERE k1 IN (SELECT k3 FROM t3 AS t WHERE a3<30) AND b2=10 AND k2=10 GROUP BY id1;
Memory / IO
⓫事务结束
Commit/Rollback
flush Log buffer
物理IO,直刷

File / Tablespace 存储管理器…

物理IO,可异步
2 整体架构
整体架构需要考虑的问题:
DB Tools
DB Server
DB Server
1 前端架构
1.2 面向连接的服务器架构(多进程、多线程、多协程) Server/Informix Apps JDBC/ODBC…
通 讯 协 议
DB Tools
Listener
Coroutine 1
怎么样在一个数据库 Coroutine 2 引 Epoll 擎内支持上万个连接? Activesession……
词法分析 语法分析 语义分析 Result buf
Begin/Locks/MVCC/R ollback/Commit…
Heap/ Access Method
事 务 管 理 器 …
Executor:DQL/DML/DDL/Others…
安 全 元 数 据 统 计 信 息 等
Transaction
Relation/Page/Tuple/Inde x/Version 逻辑IO 存储管理器… Buffer
1 前端架构
1.3 安全防范 (用户鉴别、 防止Dos攻击) 客户端不发消 息,监听者则 阻塞于此
1 前端架构
前端架构需要考虑的问题:
• 多用户访问数据库 • 高效 • 安全
2 整体架构
2.1数据库引擎的构成
SELECT…
INSERT …
SELECT…
INSERT …
DB Server… Parser…
数据库引擎技术架构分析
技术创新,变革未来
SQL执行过程 事务管理与并发控制、日志 数据存储 连接(APP、工具、接口)与协议 面向连接的服务器架构(多进程、多线程、多协程)
整体 架构
安全防范(用户鉴别、防止DoS攻击)
前端 架构
数据库 引擎
扩展 架构
PostgreSQL的扩展 MySQL的扩展 Infromix的
DB Server…
❿输出
Begin/Locks/MVCC/R ollback/Commit…
事 务 管 理 器 …
Executor:DQL/DML/DDL/Others…
优化器
安 全 元 数 据 统 计 信 息 等
Transaction
执行计划
❶输入
❸迭代器 Relation/Page/T❺uple/Index/Version ❶ Buffer ❺ 逻辑IO Chekcpoint ⓬ ❻ Write log❻ Log/Reovery Resource


存储管理器…
Log buffer
物理IO,直刷
File / Tablespace

物理IO,可异步
2 整体架构
2.5数据库引擎的执行器—插入语句的执行过程
INSERT …
INSERT …
分析器
❷Begin,开始事务 Result buf ❾消息 Heap/ Access Method ❹Create a new tuple
Memory / IO
DB Server…
事 务 管 理 器 …
Executor:DQL/DML/DDL/Others…
Begin/Locks/MVCC/R ollback/Commit…
安 全 元 数 据 统 计 信 息 等
Transaction
执行计划
❶输入
⓯事务结束
Commit/Rollback
2.4数据库引擎的执行器­ ­ ­ ­ ­ ­ 查询语句的执行过
程 SELECT…
SELECT…
分析器Fra Baidu bibliotek
优化器
❷Begin,开始事务 ⓮输出 Result buf ⓭连接结果 Heap/ Access Method ❹getTuple ⓬Lock/MVCC ❸迭代器 Relation/Page/T 逻辑IO ❺ ❺uple/Index/Version Page to tuple⓫ ❶ Buffer ⓰Checkpoint ❻Read ❿ Log/Reovery Resource
1 词法分析 5 SQL分析== 编译器前半段
2 语法分析
4 分析阶段产物:语法树
2 整体架构
2.3数据库引擎的优化器
查询优化器
SQL语 句
Parser:词 法 分 析 、 语 法 分 析 、 语 义 检 查
Rewriter:查 询 重 写 ( 视 图 重 写 )
planner查 询 优 化 函 数
Connect Coroutine N
{
DB Server
Server/PostgreSQL Listener Process 1 Listener
Server/MySQL Thread 1
fork()
{
Process 2 …… Process N pthread()
{
Thread 2 …… Thread N
Log/ Reovery Memory / IO
Optimizer…
Logical optimization
Resource
Physical optimization
Log buffer
物理IO,直刷
File / Tablespace 存储管理器…
物理IO,可异步
2 整体架构
2.2数据库引擎的分析器
相关文档
最新文档