物理存储
磁盘
- 访问时间=寻道时间+旋转等待时间
- 数据传输时间
- 平均故障时间
- 磁盘访问的优化
- 缓冲
- 预读
- 调度
- 文件组织
- 非易失性写缓冲区(NV-RAM)
- 日志磁盘
记录的表示
定长记录
记录的长度固定,一个文件分多个块,每个块存整数条记录,在删除时可以移动,也可以加一个文件头,记录第一个空闲的位置,第一个空闲的位置记录第二个空闲的位置···构成空闲列表,在插入时先在空闲列表中加,不够则加到文件末尾
变长记录
使用分槽的页结构
维持空闲空间连续,删除时维护头部,插入时加在空闲空间尾部
文件中记录的组织
堆文件组织
无顺序,每个关系用一个单独的文件
顺序文件组织
将记录按照搜索码(任一属性或属性的集合)排序,用指针连接记录,每个指针指向按搜索码排序的下一条记录
物理存储顺序最好与搜索码顺序保持一致
插入时若有空位则加在空位,无空位则加到溢出块中,都要调整指针
删除同样用指针管理
丧失一致性后进行重组
多表聚簇文件组织
一个块中存储多个关系的记录
方便处理多表连接的查询
会使其他查询变慢
谨慎使用会使查询效率明显提高
散列文件组织
在每条记录的某些属性上计算一个散列函数,散列值决定放在文件的哪个块中
数据字典存储
即元数据的存储
通常实现者自己定义
data文件夹
manager.meta (有哪些数据库)
user.meta (有哪些用户)
db1文件夹 (某个数据库的名字)db1.meta (数据库里有哪些表)
t1文件夹 (某个表的名字)t1.meta (表的结构)
t1.data (表的序列化数据)
数据库缓冲区
缓冲区存储磁盘块的拷贝
缓冲区管理器
替换策略
最近最少使用、立即丢弃、最近最常使用等
被订住的块
不允许写回磁盘的块