MySQL 架构
大约 1 分钟
我们自己如何去设计一个关系型数据库
如果让我们自己去设计一个关系型数据库,我们可以尝试从以下几点去考虑,下图是一个简答的架构设计需要具备的模块:
什么是数据库
数据库是文件的集合,是依照某种数据模型组织起来并存放于二级存储器中的数据集合,存储的最小单位是块或页,用于将数据持久化。
数据库实例
数据库实例(RDBMS)至少需要具备这几个模块: 存储管理、缓存机制、SQL 解析、日志管理、权限划分、容灾机制、索引管理、锁管理。
数据库实例是程序,是位于用户与操作系统之间的一层数据库管理软件,用户对数据库数据的任何操作,包括数据库定义、数据查询、数据维护、数据库运行控制等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。
各模块的功能意义:
- 存储管理:将数据的逻辑关系转换成物理存储
- 缓存机制: 提升效率,缓存不宜过大,且需要淘汰机制
- SQL解析:缓存编译好的sql
- 日志管理: 记录操作(bin log)
- 权限划分: 多用户管理
- 容灾机制: 灾难恢复
- 索引管理: 提升效率
- 锁管理: 支持并发操作