9.2.3 存储分布

2025-06-16 12:45:43 更新

存储布局:确定如何访问磁盘,以及如何直接影响性能,主要分为基于行的存储布局、列存储布局、带有局部性群组的列存储布局、LSM-Tree四种。


分类




1

行存储

行存储(适用OLTP更新:增删频繁)将每条记录的所有字段的数据聚合存储;

区别:

(1)列储存每个字段数据聚集存储,查询时能减少数据读取量。行存储每次必须读取整条记录。

(2)列存储更容易为聚集存储设计更好的压缩/解压算法。

如何序列化逻辑数据结构

2

列存储

列存储(适用OLAP查询:数据仓库、数据挖掘)将所有记录中相同字段的数据聚合存储。

3

带有局部性群组的列存储

局部性群组:根据需要将原来不存储在一起的数据,以列族为单位存储至单独字表中,减少无用信息读取,改善存取效率。


4

LSM-Tree

(Log Structured Merge Trees,日志结构合并树)由Patrick O'Neil在1996年提出。

算法思想主要用于解决日志记录索引的问题(数据量大、写速率高时,索引高效)

典型例子是Google的Bigtable

Google的需求:数据存储可靠性、高速数据检索与读取、存储海量的记录、可以保持记录的多个版本。

满足高效、高性能、安全地读写的要求,如何有效地利用内存和磁盘存储。