关系型数据库主要考点:

如何设计一个关系型数据库
了解数据库的各个模块:
数据库最终的目的就是存储我们的 数据,因此数据库会有一个存储模块,来负责存储我们的数据,存储模块就类似我们的os系统,当数据持久化,存储到磁盘,如存储到机械硬盘说着ssd固态硬盘。有了存储系统之后,我们还有组织,使用这些数据,因此需要程序的实例,用逻辑结构映射出物理结构来,并且在程序中提供获取管理数据的方式,还有必要是问题追踪机制。
以下是程序的模块:
1:存储管理:首先需要对数据的格式和文件的风格进行统一的管理,即把物理数据通过逻辑的形式给组织表现出来,便涉及到我们的程序存储管理模块(题外话:我们如何优化存储效能,处理数据不可能在磁盘上做,而是让程序加载带程序空间所在的内存里去做,而磁盘的io速率,往往是程序执行的主要瓶颈)。存储的最小单位是块或者页,他们都是由数据行组成的
2:缓存机制,把取出来的数据块放在缓存里,下次需要的时候直接从内存返回,而不用发生io。
3:sql的解析模块:将sql解析转换成可以执行的指令,为了进一步去提升sql效率,将sql缓存到我们的缓存里,编译好的sql方便下次直接解析(设计程序,我们先考虑实现功能,在考虑怎么优化),需要注意的是,我们的缓存不能过大,且有缓存失效机制。
4:日志管理:我们做的这些sql操作需要记录下来,方便我们做主从操作,主从同步,或者 灾难恢复,因此我们就需要有日志管理
5:权限划分
6:容灾机制(考虑异常的情况):当数据库挂了,该如何恢复,恢复到什么程度
7:索引管理
8:锁管理

索引模块
常见问题:
1:为什么要使用索引
引入索引的其中一个原因之一是为了避免全表扫描,来提升效率。索引的灵感来自于字典
快速查询数据
2:什么样的信息可以成为索引
主键,唯一键以及普通键等
3:索引的数据结构
生成索引,建立二叉查找树进行二分查找
生成索引,建立B-tree结构进行查找
生成索引,建立B+-TREe结构进行查找
建立hash结构进行查找
4:密集索引和稀疏索引的区别
本文深入探讨关系型数据库的设计原则,包括存储管理、缓存机制、SQL解析、日志管理、权限划分、容灾机制、索引及锁管理等核心模块。同时,详细解析索引的作用、类型及其数据结构,帮助读者理解如何有效提升数据库性能。
1145

被折叠的 条评论
为什么被折叠?



