数据库存储(中)

时间:2021-10-07
本文章向大家介绍数据库存储(中),主要包括数据库存储(中)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

日志结构存储方式

直接将日志信息存储在页中:

好处:

  1. 便于回滚
  2. 相比起直接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的保护),但是还是可以通过DBMS来修改这些数据。

事务模型

OLTP

不进行复杂的数据操作,只针对自己的相关的一小部分数据进行操作。

例子:用户购物

OLAP

有些类似于数据分析,可能要从已有的数据中分析出新的数据。

举例:检测在线人数

N array存储模型

好处:

  • 适用于增、改和删
  • 适用于需要整个tuple条目的搜索

弊端:

  • 由于搜索或会加载整个page,如果搜索不需要整个tuple条目会带来一些不必要的条目的加载损失

Decomposition Storage Model(DSM 分解存储模型)

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

好处:

  • 减少搜索中的不必要的损耗
  • 拥有更好的压缩性能

缺点:

  • 每个列存在不同的page中,对于update、delete和insert不友好。

确定元素位置:

  1. 每个属性的长度固定,这样可以直接计算偏移查找对应的属性(大部分采用策略)
  2. 在每个列中额外维护一个id,但是会带来存储空间的浪费

原文地址:https://www.cnblogs.com/jamesnie/p/15375594.html