所以我正在學習聚類/非聚類索引。 現在我讀到,聚類索引通過主鍵對資料進行物理排序。
但是,為什么會有這種需要呢?表不是默認按ID(主鍵)排序嗎?因為你從記錄A(ID 1)開始,然后是記錄B(ID 2),以此類推。它們總是被排序的。為什么需要使用聚類索引呢?
uj5u.com熱心網友回復:
表是沒有排序的。雖然自動遞增的ID是以升序發布的,但DBMS可以自由地在磁盤上任何有位置的地方存盤記錄。如果你查詢表資料時沒有ORDER BY子句,你可能會得到任何舊順序的行。
關于ID的索引可以用來快速找到這些行。在索引中找到一個 ID 是非常快的,并且索引告訴你要從表中讀取哪條記錄。
如果你的表都是通過ID快速查找行,這對于單純的查找表來說是很典型的,比如一個包含所有國家名稱的表,你可以把它變成一個聚類的索引。
"聚類索引 "簡單地說就是整個表的資料都在索引結構里面,所以你不用搜索索引然后再去找表的行,而是直接就能得到該行。在我看來,Oracle已經想出了一個更好的名字;他們稱之為 "索引組織表"。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/321953.html
標籤:
