4
A
回答
4
您應該對具有相當靜態的低基數值(少數不會經常更改的不同數值)的表使用位圖索引。使用位圖時,基數應低於1%,如果低於0.1%,則最可能是最佳選擇。與b-tree相比,維護位圖索引的開銷很高,所以它們最適合於很少更改的數據,儘管這種情況下的適用性由應用程序決定,其中數據更改和報告可能不是併發的,因此您不應該不介意額外的努力。
舉一個簡單的例子:在員工表上,如果您爲性別,職位,部門,年齡和員工編制索引編號,您可以選擇性別和職位以及部門的位圖,但可能不適合年齡,絕對不適合員工數。
相關問題
- 1. 什麼時候應該創建數據庫索引?
- 2. 什麼時候我們不應該創建一個jquery插件?
- 3. 什麼時候我們需要通過引用函數創建通過/呼叫
- 4. 什麼時候進行索引,在Mongoid中索引什麼?
- 5. Android:我們什麼時候使用getIntent()?
- 6. 什麼時候我們應該在css中使用rem單位?
- 7. 什麼時候創建了app.config,什麼時候app.exe.config和有什麼區別
- 8. 我們什麼時候應該上課,什麼時候不應該上課
- 9. 什麼時候在lucene中建立索引
- 10. 什麼時候應該重建數據庫索引?
- 11. 什麼時候創建了String對象?
- 12. GridView列創建 - 生成 - 什麼時候?
- 13. 什麼時候創建窗口句柄
- 14. 什麼時候在DNN中創建sitemap.xml
- 15. 什麼時候創建泛型類
- 16. 什麼時候創建了Control.UniqueId?
- 17. 我們什麼時候需要一個.template構建
- 18. 我們什麼時候在Apple的Singleton例子中爲ivars創建內存?
- 19. 我們什麼時候在C#中創建這種類型的對象...?
- 20. 什麼時候在Titan圖中使用邊緣索引?
- 21. 爲什麼我無法在臨時表上創建索引?
- 22. 我們什麼時候有Drupal 7的批量圖像uplaod
- 23. 什麼是SWC,什麼時候/我們在Flash中使用SWC
- 24. 什麼是BigInteger,我們什麼時候可以使用它?
- 25. 我如何知道什麼時候索引一列,並用什麼?
- 26. 應該創建什麼索引?
- 27. 爲什麼我們創建一個PoolableConnectionFactoryObject
- 28. 什麼時候創建自己的DLL應該在什麼
- 29. 什麼時候我在HTML
- 30. flink Windows,它們什麼時候啓動
我同意一般,雖然我會避免使用任何具體的數字來確定何時使用位圖。即使在最糟糕的情況下,如果沒有重複的值,位圖索引只會使用與btree索引相同的空間,並且執行讀取操作時也是如此。如果您擁有隻讀數據倉庫並且空間有問題,則僅使用位圖索引是有意義的。 而「高開銷」可能無法充分解釋它們可能有多糟糕。我想說寫性能可能是災難性的 - 更新一個行可以鎖定整個表。 – 2011-04-12 04:48:59