如何设计一个关系型数据库

首先,分为存储(文件系统)和程序实例两大部分。

程序实例划分

  1. 存储管理模块:将数据的逻辑关系转换成为物理存储关系。
  2. 缓存机制模块:优化执行效率。
  3. SQL解析模块:解析SQL语句。
  4. 日志管理模块:记录操作日志。
  5. 权限划分模块:进行多用户管理。
  6. 容灾机制模块:灾难恢复。
  7. 索引管理模块:优化数据查询效率。
  8. 锁管理模块:使得数据库支持并发操作。

缓存不宜过大,应该要有淘汰优化算法。
数据库的重点是索引和锁管理模块。

索引(以下答案不完善)

问:为什么要使用索引?
答:全表扫描在数据量较小的时候会很快,但在数据量较大的时候,查询就会很慢;快速查询数据

问:什么样的信息能成为索引?
答:主键、唯一键以及普通键等。

问:索引的数据结构
答:1.生成索引,建立二叉查找树进行二分查找;
  2.生成索引,建立B-Tree结构进行查找;
  3.生成索引,建立B±Tree结构进行查找;(mysql)
  4.生成索引,建立Hash结构进行查找。

猜你喜欢

转载自blog.csdn.net/u012919352/article/details/87928440