DB2 for LUW进程模型在DB2v9.5之前都是多进程模型,DB2 v9.5之后体系架构变更为单进程多线程模型。
常连接池内的线程db2agent和db2agentp通信管理线程db2tcpcm和db2ipccm
负责对来自客户端的连接请求进行安全验证和检查,并与客户端实现三次握手连接。
数据页预取进程db2pfchr/页面清理进程db2pclnr当请求的数据不在bufferpool中时,需要预取进程db2pfchr通过异步读数据的方式将将所需数据从磁盘读入bufferpool中。
日志页读写进程db2loggr/db2loggw当需要使用持久化到磁盘的日志恢复或撤销某些操作时,需要从磁盘中将对应的日志读入到日志缓冲区中,此时有db2loggr线程完成。
全局死锁检测线程db2dlockMySQL的体系架构如上图所示,可将其划分为以下三个逻辑层:
应用层(Application Layer)逻辑层(Logical Layer)
物理层(Physical Layer)
MySQL管理工具和应用实例(Administrator&Utilities)
主要是连接到MySQL服务器检索、修改或增加数据,有以下常见MySQL管理工具或实用程序。
MySQL查询接口主要指mysql脚本,使用mysql工具可以直接与MySQL服务器交互,是日常与MySQL服务器打交道最频繁的工具。
客户端应用接口主要是使用MySQL服务器对外公布的一些API调用访问数据库,主要有CAPI、Python API以及JavaAPI。
SQL引擎编译SQL语句事务控制
日志管理
数据库需要将所有对数据变更的操作记录下来,以便当数据库发生crash时做Redo或Undo操作,或者在分布式结构中将操作通过从一个计算节点共享到其他计算节点,这些功能都是通过事务日志来控制的。
MySQL的事务日志管理系统是Recoverymanagement组件,主要功能是持久化事务日志以及当数据库crash时将数据库恢复到crash之前的一致性状态。
存储管理(Storage management)值得一提的是,MySQL的逻辑层的上述几个组件功能并不是MySQL特有的,而是普遍适用于DB2/Oracle等常见关系型数据库。
MySQL数据库为用户提供了20多种可插拔的存储引擎,比较常见的有如下列表所示几种:
相比较于其他MySQL存储引擎,MySQLInnoDB存储引擎支持以下关键特性:
- 多版本并发控制(MVCC)
- 行级锁(Row-level Locking)
- 外键支持(Foreign key support)
- 群集索引(Cluster Indexing)
- 可自由分配的bufferpools
- 在线数据库备份
如下图是支持访问MySQL数据库服务器的API接口类型,可以通过编写程序调用四种API接口访问MySQL数据库:
JDBC with Connector/J.NET with Connector/NET
ODBC with Connector/ODBC
Other APIs with C Library
使用基于C语言库的编程语言,比如C/C++语言、Python/PHP/Perl/Ruby语言等访问MySQL数据库。
数据和云







