Index

數據庫中的多維索引

  • August 26, 2020

哪些數據庫使用真正的多維索引?oracle 是否曾經使用多個索引從表中獲取數據,還是總是採用似乎具有最高選擇性的索引?其他dbms怎麼樣?

Oracle 有一種稱為點陣圖索引的索引類型,它描述為…

數據庫索引,其中數據庫儲存每個索引鍵的點陣圖而不是 rowid 列表。

如果表有點陣圖索引或使用了提示,它可以在正常 B 樹索引上使用點陣圖訪問計劃點陣圖索引可以連接、聯合和相交。

use-the-index-luke.com上有一個很好的解釋,其中包括以下組合多個 B-Tree 索引的實現:

DB2: DB2 在LUW 9r7(使用動態點陣圖)和zOS v10 上支持多索引訪問 。

MySQL: MySQL 從 5.0 版開始具有索引合併優化。

Oracle Oracle 數據庫使用 BITMAP CONVERSION 動態組合多個索引(在 9i 中引入)。

PostgreSQL PostgreSQL從 8.1 版開始 使用點陣圖來組合多個索引。

SQL Server SQL Server從 V7.0 開始可以使用散列算法使用多個索引(“Index Intersect”) 。

另請參閱此 StackOverflow 問題,其中第一個答案說 SQL Server 使用索引交集執行類似於點陣圖索引的操作。

用於復雜相似性查詢的高效和靈活的點陣圖索引是我發現的將點陣圖索引與單詞多維相關聯的最接近的參考。多維似乎更像是一種使用索引的方式,而不是它們的屬性。

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