知识卡片

列式布局省IO

普通读书笔记卡 · 1773.c

内容

行式存储适合读取整行,列式存储适合分析查询只读取少数字段。列式还能按列选择压缩算法,提高压缩率;代价是重组完整记录更复杂,写入路径也更重。

参考来源

- 位置:《大数据日知录:架构与算法》第8章《分布式文件系统》"8.4.1 行式存储"与"8.4.2 列式存储"一节(源文件:_epub-src/OEBPS/text00013.html) - 结论依据:原文明确行式存储缺陷"即使如此也要将整个记录全部读出后才能读取到所需的字段……对于记录的所有字段只能统一采用同一种压缩算法";列式存储优点"如果SQL查询只涉及记录的个别列,则只需读取对应的列内容即可……可以针对每列数据的类型采取具有针对性的数据压缩算法",但"从列式数据中拼合出原始记录内容"需要跨机器网络传输,效率较低。 - 原始内容:行式存储布局有两个明显缺陷:其一是……即使如此也要将整个记录全部读出后才能读取到所需的字段;其二是……对于记录的所有字段只能统一采用同一种压缩算法……如果SQL查询只涉及记录的个别列,则只需读取对应的列内容即可……可以针对每列数据的类型采取具有针对性的数据压缩算法……列式存储要从列式数据中拼合出原始记录内容……可能需要大量的网络传输才行。