回答
- 獨特 - 該列擔保唯一值(或一組列)在索引包括
- 覆蓋 - 包括所有在一個特定的查詢中使用的(或一組查詢的)列,允許數據庫僅使用索引而不必實際查看錶數據以檢索結果
- 集羣 - 這是實際數據在磁盤上排序的方式,這意味着如果查詢使用聚集索引來查找向上的價值觀,它沒有采取仰視不包含在索引中的任何數據的實際錶行的額外步驟。
thanx它對我有幫助4我也是 – Freelancer 2012-12-20 11:33:24
OdeToCode has a good article covering the basic differences
,因爲它說的文章:
適當的索引對於大型數據庫中的良好表現 至關重要。 有時你可以彌補一個良好的指數不佳 書面查詢,但 可能很難彌補差 索引用再好的查詢。
非常真實,如果你剛剛開始使用它,我會專注於聚集索引和複合索引,因爲它們可能會成爲你使用最多的索引。
我會添加一些索引類型的
位圖 - 當你有不同的可能值非常低的數字,速度非常快,不會佔用太多的空間
PARTITIONED - 允許索引爲了存儲或性能的原因,基於通常對於非常大的數據庫對象有利的某些屬性進行分區。
FUNCTION/EXPRESSION索引 - 用於根據表預先計算某個值並將其存儲在索引中,一個非常簡單的示例可能是基於lower()或子字符串函數的索引。
對於相同類型的索引,不同的數據庫系統有不同的名稱,因此請注意這一點。例如,在Oracle中稱爲「索引組織表」的SQL Server和Sybase稱爲「聚集索引」。
我建議你搜索Jason Massie(http://statisticsio.com/)和Brent Ozar(http://www.brentozar.com/)的相關信息。他們有一些關於處理索引的真實場景的文章。
PostgreSQL允許部分索引,其中僅匹配謂詞的行被索引。例如,您可能需要爲客戶表索引僅用於那些處於活動狀態的記錄。這可能看起來像:
create index i on customers (id, name, whatever) where is_active is true;
如果索引多列,並且有許多不活躍的客戶,這可能是在空間方面大贏(該指數將存儲在更少的磁盤頁),因此性能。打你需要的指標,至少指定謂詞:
select name from customers where is_active is true;
甲骨文b樹,位圖,分區和非分區的各種組合,反向字節,位圖連接,和域的索引。
這裏到11gR1中文檔的鏈接上的主題:http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/data_acc.htm#PFGRF004
SQL Server 2008有filtered indexes,類似於PostgreSQL的partial indexes。兩者都允許包含在僅符合指定條件的索引行中。
的語法與到PostgreSQL:
create index i on Customers(name) where is_alive = cast(1 as bit);
傳統觀點認爲,指數選擇應基於基數。他們會說,
對於低基數列像GENDER,使用位圖。對於像LAST_NAME這樣的高基數,請使用b-tree。
這不是與Oracle,其中,索引的選擇應替代地基於(OLTP與OLAP)的類型的應用程序的情況下。具有位圖索引的表上的DML可能導致嚴重的鎖爭用。另一方面,Oracle CBO可以輕鬆地將多個位圖索引組合在一起,位圖索引可用於搜索空值。作爲一般規則:
對於頻繁的DML和日常查詢,使用B樹的OLTP系統。對於具有罕見DML和adhoc查詢的OLAP系統,請使用位圖。
我不確定這是否適用於其他數據庫,歡迎評論。下面的文章討論的主題進一步:
索引組合是位圖索引的用例。 – Apocalisp 2008-09-27 19:25:24
- 獨特
- 集羣
- 非羣集
- 列存儲
- 指數無線個包括列
- 指數的計算列
- 過濾
- 空間
- XML
- 全文
要查看索引的類型及其含義訪問: https://msdn.microsoft.com/en-us/library/ms175049.aspx
- 1. makefiles有哪些不同類型,.mf和GNUMakefile文件有什麼區別?
- 2. SilverStripe可以做什麼不同類型的「刷新」,它們有什麼不同?
- 3. 有許多不同的數據類型的好處是什麼?
- 4. 索引器有什麼好處?
- 5. ColumnStore索引對Azure有什麼好處?
- 6. 在C++中有哪些不同類型的指針和引用?他們爲什麼有用?
- 7. 什麼是Haskell中的一些抽象數據類型,它們與代數數據類型有什麼不同?
- 8. 有哪些不同類型的runfiles
- 9. Cakephp,它有什麼好處?
- 10. Assert() - 它有什麼好處?
- 11. 索引和分片有什麼區別
- 12. C# - 「部分」類有什麼好處?
- 13. python類有什麼好處?
- 14. com.isomorphic.datasource。*和com.smartgwt.client.data。*,它們有什麼不同?
- 15. 索引列有重複值的列有什麼好處嗎?
- 16. 使用分部類而不是抽象類有什麼好處?
- 17. 部分索引和稀疏索引mongodb有什麼區別?
- 18. 這些數字是什麼,它們的類型是什麼?
- 19. 輸入/輸出流與普通讀寫器有什麼區別,它們的類型有什麼區別?
- 20. 使用指針或不使用它們作爲類引用。有什麼不同?
- 21. 超級類型子類型表有什麼好處
- 22. 爲什麼一些Java包裝類與它們的基本類型有不同的名稱?
- 23. 分別對2列進行索引和每列的索引有什麼區別?
- 24. jQuery FancyBox,它有什麼好處?
- 25. Z Shell「autoload」builtin - 它有什麼好處?
- 26. Django inlineformsetfactory - 它有什麼好處?
- 27. 元編程,它有什麼好處?
- 28. 屬性後臺 - 它有什麼好處?
- 29. Lucene SpanQuery - 它有什麼好處?
- 30. Flex + Java EE它有什麼好處?
什麼數據庫平臺? – therealhoff 2008-09-27 18:31:59