学习笔记:数据库原理CH8.存储管理

首先先来看一下存储的架构:

首先看到的就是Cache,也就是数据库的缓存,是最快的一个拿取数据的地方,缓存当然要考虑一个缓存刷入的问题。
之后是主内存,主内存这里要知道的是他是Random access的,RAM
之后是Secondary Storage,一般是硬盘,这里就有两种,机械硬盘和SSD
一般会在硬盘的一个区域设置buffer,跟缓存是一个道理的东西,可以理解为硬盘内部的缓存

然后就是Tertiary Storage 三级存储,这个就是会出现硬盘的阵列

有几种计算模型,RAM模型,DBMS模型,IO模型
先来看如何加速二级存储的读取速度:

最综合的就是建立RAID:
主要的三个优势是:
1、higher capacity,grouping multiple disks
2、higher performance,multiple parallel read write operation
3、reliability,stored redundantly
如何实现?
1、mirroring
2、striping
3、error correction


之前在二级存储说到了buffer,就会有buffer manager,如何替换buffer呢?OS:LRU
在数据库钟,LRU并不是最好的
1、toss-immediate strategy
2、most recently used
3、statistical information about the probability
如何组织数据库中的文件?
固定长度,可变长度
固定长度:

会出现的问题:
1、一个block被删了,就需要填上其他的block
2、如果block的大小和存储的东西不是倍数关系,可能会出现cross block boundaries
如何解决?
设置一个空闲指针,指向空闲的block,free list

可变的数据:

有一个专门的offset记录长度

如果出现特别大的数据,可以分开,用指针连接即可
