Index

列式數據庫不需要索引嗎?

  • July 31, 2014

在列式數據庫中,索引是不必要的還是沒用的?

如果要掃描儲存的所有數據的子集,則需要某種索引結構。它不必是 B 樹。從某種意義上說,分區或段消除也是一種索引。

本質上沒有什麼可以阻止列式數據庫以排序(或粗略排序的方式)儲存。這將允許尋求發生。

也就是說,並非所有列式數據庫都能夠掃描由某個謂詞選擇的儲存數據的子集。這是一個實現問題,而不是柱狀模型的限制。

正如另一個回復中提到的,您的確切問題的答案是特定於實現的。不同的數據庫供應商可能會給出不同的答案。

我對其他基於列的數據庫引擎不夠熟悉,但是在具有 BLU 加速的 DB2 中,您仍然會有涵蓋主鍵和列組織表的唯一約束的索引,因為這些索引用於強制唯一性。還有一些新的資料結構,雖然它們不同於傳統的 B-tree 索引,但通過允許隨機訪問而不是順序訪問,在優化數據訪問方面發揮作用,因此在功能上類似於索引。

另一方面,在按列組織的表中,數據的物理組織已針對高效的順序訪問進行了優化,因此在列式數據庫中可能不需要像在傳統的行組織數據庫中那樣多的索引。

引用自:https://dba.stackexchange.com/questions/68836