在此示例中,列式数据库与 RDBMS 相比如何更快

In this example, how columnar database is faster compared to RDBMS

在这个例子中,像 Vertica 这样的 columnar 数据库比 rdbmsw.r.t 速度有何优势?

我假设 Symboldateprimary key w.r.t rdbms

从我下面的例子来看,投影看起来像下面这样,但我不明白为什么没有。读取次数较少

如果 tickstore 只有您在示例中使用的三列(并且实际上只有那时),面向行的 DBMS 可能会更快 - 特别是如果您有 symboldate 索引.

但在任何其他情况下:列式数据库中的每一列(Vertica 是第一个广为人知的数据库)本身都归结为一个文件。因此,在 table 中有 103 列的情况下,面向行的 DBMS 从磁盘读取了 100 列,而 Vertica 只读取了 3 列;面向行的 DBMS 需要浏览完整的读取行以找到查询中所需的每一列的开始;并且 Vertica 可以依赖于每个列文件仅包含一种数据类型这一事实,并且可以优化读取和写入过程以利用该知识。

此外,还有针对列向数据的编码算法,这些算法会破坏此答案的 space 以在此处详细介绍。

总结一下:面向列的数据库唯一不喜欢的是 SELECT * 的 100 多列 table。