行存

行存在学术论文中一般简称为 NSM(N-ary Storage Mode)。
行存的优点如下:

  • 适合快速的点插入,点更新和点删除
  • 对于需要访问全部列的查询十分友好

行存的缺点如下:

  • 对需要读取大量数据并访问部分列的场景不友好

所以行存适用于 OLTP 场景。

列存

列存在学术论文中一般简称为 DSM(Decomposition Storage Model)。
列存的优点如下:

  • 只读取部分列时,可以减少 IO
  • 更好的编码和压缩(由于每列的数据类型相同)
  • 更易于实现向量化执行

列存的缺点如下:

  • 不适合随机的插入,删除,更新。(多列之间存在拆分和合并的开销)

所以列存适用于 OLAP 场景。

行列转换

行存和列存 - 图1