亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

聚集索引和非聚集索引實際上意味著什么?

聚集索引和非聚集索引實際上意味著什么?

守著星空守著你 2019-06-28 15:09:54
聚集索引和非聚集索引實際上意味著什么?我對DB的了解有限,并且只使用DB作為應用程序員。我想知道Clustered和Non clustered indexes..我搜索了一下,發現:聚集索引是一種特殊類型的索引,它重新排序表中記錄的物理存儲方式。因此,表只能有一個聚集索引。聚集索引的葉節點包含數據頁。非聚集索引是一種特殊類型的索引,其中索引的邏輯順序與磁盤上行的物理存儲順序不匹配。非聚集索引的葉節點不包含數據頁。相反,葉節點包含索引行。我在里面發現的是聚集索引和非聚集索引之間有什么區別?.有人能用通俗易懂的英語解釋一下嗎?
查看完整描述

3 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

對于聚集索引,行以與索引相同的順序物理地存儲在磁盤上。因此,只能有一個聚集索引。

對于非聚集索引,第二個列表具有指向物理行的指針。您可以有許多非聚集索引,盡管每個新索引都會增加寫入新記錄所需的時間。

如果要返回所有列,則從聚集索引中讀取通常更快。您不必先到索引,然后再到表。

如果需要重新排列數據,寫入具有聚集索引的表可能會慢一些。


查看完整回答
反對 回復 2019-06-28
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

聚集索引意味著要讓數據庫在磁盤上存儲實際上彼此接近的關閉值。這有利于快速掃描/檢索屬于某些聚集索引值范圍的記錄。

例如,您有兩個表,Customer和Order:

Customer----------ID
Name
AddressOrder----------ID
CustomerID
Price

如果您希望快速檢索一個特定客戶的所有訂單,您可能希望在Order表的“CustomerID”列上創建一個聚集索引。這樣,具有相同CustomerID的記錄將被物理地存儲在磁盤(群集)上,從而加快了它們的檢索速度。

顯然,CustomerID上的索引并不是唯一的,所以您要么需要添加第二個字段來“惟一”索引,要么讓數據庫為您處理這個問題,但這是另一回事。

關于多個索引。每個表只能有一個聚集索引,因為這定義了數據的物理排列方式。如果你想打個比方,想象一下有很多桌子的大房間。您可以將這些表放在一起形成幾行,或者將它們全部拉到一起形成一個大型會議桌,但不能同時使用這兩種方式。一個表可以有其他索引,然后它們將指向聚集索引中的條目,這些條目最終會說明在哪里找到實際數據。


查看完整回答
反對 回復 2019-06-28
  • 3 回答
  • 0 關注
  • 2219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號