2011-02-11 61 views

回答

4

您應該對具有相當靜態的低基數值(少數不會經常更改的不同數值)的表使用位圖索引。使用位圖時,基數應低於1%,如果低於0.1%,則最可能是最佳選擇。與b-tree相比,維護位圖索引的開銷很高,所以它們最適合於很少更改的數據,儘管這種情況下的適用性由應用程序決定,其中數據更改和報告可能不是併發的,因此您不應該不介意額外的努力。

舉一個簡單的例子:在員工表上,如果您爲性別,職位,部門,年齡和員工編制索引編號,您可以選擇性別和職位以及部門的位圖,但可能不適合年齡,絕對不適合員工數。

+0

我同意一般,雖然我會避免使用任何具體的數字來確定何時使用位圖。即使在最糟糕的情況下,如果沒有重複的值,位圖索引只會使用與btree索引相同的空間,並且執行讀取操作時也是如此。如果您擁有隻讀數據倉庫並且空間有問題,則僅使用位圖索引是有意義的。 而「高開銷」可能無法充分解釋它們可能有多糟糕。我想說寫性能可能是災難性的 - 更新一個行可以鎖定整個表。 – 2011-04-12 04:48:59

相關問題