[英]In this example, how columnar database is faster compared to RDBMS
如果 tickstore 只有您在示例中使用的三列(實際上只有那時),那么面向行的 DBMS 可能會更快 - 特別是如果您有symbol
和date
索引。
但在任何其他情況下:列式數據庫中的每一列(Vertica 是第一個廣為人知的)都歸結為一個文件本身。 因此,在表中有 103 列的情況下,面向行的 DBMS 從磁盤中讀取了過多的 100 列,而 Vertica 僅讀取了 3 列; 面向行的 DBMS 需要瀏覽完整的讀取行以查找查詢中所需的每一列的開始; Vertica 可以依靠每個列文件僅包含一種數據類型這一事實,並且可以優化讀取和寫入過程以利用該知識。
此外,還有針對列數據的編碼算法,這些算法會在此處詳細介紹 go 的答案空間。
總結一下:面向列的數據庫唯一不喜歡的是100多個列表的SELECT *
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.