1.1 RDBMS 应当包括 程序实例 和 存储系统(文件系统)
RDBMS
+----------------------------------+
| 程 序 实 例 |
| |
| |
+----------------------------------+
| 存 储 ( 文 件 系 统 ) |
| |
| |
+----------------------------------+
2.1 存储系统(文件系统) 应当存储在 HDD / SSD / ...,如下图
RDBMS
+----------------------------------+
| 程 序 实 例 |
| |
| |
+----------------------------------+
| 存 储 ( 文 件 系 统 ) |
| HDD / SSD / ... |
| |
+----------------------------------+
2.2 程序实例 应当包括:存储管理、缓存机制、SQL解析、日志管理、权限划分、容灾机制、索引管理、锁管理,如下图
RDBMS
+---------------------------------------------------+
| 程 序 实 例 |
| |
| 存 储 管 理 缓 存 机 制 SQL 解 析 日 志 管 理 |
| |
| 权 限 划 分 容 灾 机 制 索 引 管 理 锁 管 理 |
| |
+---------------------------------------------------+
| 存 储 ( 文 件 系 统 ) |
| |
| |
| HDD / SSD / ... |
| |
+---------------------------------------------------+
3.1 作为开发者,我们将重点研究,其中两个模块:
-
索引管理
-
锁管理
3.2 索引管理
- 在研究索引管理之前,我们先提出几个问题
- 为什么要使用索引?
- 什么样的信息能成为索引?
- 索引的数据结构?
- 密集索引和稀疏索引的区别?
- 衍生出来的问题,以mysql为例
- 如何定位并优化慢查询 Sql?
- 联合索引的最左匹配原则的成因?
- 索引是建立的越多越好吗?
3.3 锁管理
- 在研究索引管理之前,我们当然也先提出几个问题
- MyISAM 与 InnoDB 关于锁方面的区别是什么?
- 数据库的四大特性?
- 事务隔离级别以及各级别下的并发访问问题?
- InnoDB可重复读隔离级别下如何避免幻读?
- RC、RR级别下的InnoDB的非阻塞度如何实现?
3.4 传送门
-
带着以上问题,我们开启数据库探索之旅,进入我的另外两篇文章:)。