跳至主要內容

MySQL 架构

Mars大约 1 分钟MySQL架构MySQL

我们自己如何去设计一个关系型数据库

如果让我们自己去设计一个关系型数据库,我们可以尝试从以下几点去考虑,下图是一个简答的架构设计需要具备的模块:

什么是数据库

数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合,存储的最小单位是块或页,用于将数据持久化。

数据库实例

数据库实例(RDBMS)至少需要具备这几个模块: 存储管理、缓存机制、SQL 解析、日志管理、权限划分、容灾机制、索引管理、锁管理。

数据库实例是程序,是位于用户与操作系统之间的一层数据库管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。

各模块的功能意义:

  • 存储管理:将数据的逻辑关系转换成物理存储
  • 缓存机制: 提升效率,缓存不宜过大,且需要淘汰机制
  • SQL解析:缓存编译好的sql
  • 日志管理: 记录操作(bin log)
  • 权限划分: 多用户管理
  • 容灾机制: 灾难恢复
  • 索引管理: 提升效率
  • 锁管理: 支持并发操作

MySQL 的架构

参考