数据库存储(中)
日志结构存储方式

直接将日志信息存储在页中:
好处:
- 便于回滚
- 相比起直接insert、update和delete更为便捷
坏处:
读数据麻烦
数据库中tuple元数据的存储形式
- int、float与C等语言中的存储形式基本一致(长度基本固定)
- varchar,string等(header表示一些例如数据长度的信息,元数据,校验和如果在数据量比较大的情况下)
- Date等时间相关数据(从Unix epoch【1970.1.1】过去的秒、毫秒)
插眼:Triple E 754:工业界中定义int、double等数据类型在CPU表示形式的一种规范
有一段距离说明decimal和real在执行sql语句上的时间差异,引出关注使用类型的问题(看的感觉不是很懂,稍微记录一下)。
一个page存不下怎么处理
使用overflow page存储过长部分的数据,在page中存放指针的引用。

还有一种方法是不适用overflow page,而是使用外部磁盘文件甚至network storage。好像还提到我们不能够直接对这些存储进行修改(由于DBMS的保护)。更正一下,这种情况下无法对外部文件进行修改,只能读不能改。

事务模型

OLTP
不进行复杂的数据操作,只针对自己的相关的一小部分数据进行操作。
例子:用户购物
OLAP
有些类似于数据分析,可能要从已有的数据中分析出新的数据。
举例:检测在线人数
N array存储模型

好处:
- 适用于增、改和删
- 适用于需要整个tuple条目的搜索
弊端:
- 由于搜索或会加载整个page,如果搜索不需要整个tuple条目会带来一些不必要的条目的加载损失
Decomposition Storage Model(DSM 分解存储模型)

将单独的一个列储存在一个单独的page中。

好处:
- 减少搜索中的不必要的损耗
- 拥有更好的压缩性能
缺点:
- 每个列存在不同的page中,对于update、delete和insert不友好。
确定元素位置:
- 每个属性的长度固定,这样可以直接计算偏移查找对应的属性(大部分采用策略)
- 在每个列中额外维护一个id,但是会带来存储空间的浪费

浙公网安备 33010602011771号