聚集索引與非聚集索引的區別
發表時間:2023-09-14 來源:明輝站整理相關軟件相關文章人氣:
[摘要]聚集索引與非聚集索引的區別聚集索引,是一種指明表數據物理存儲順序的索引.在聚集索引中,行的物理存儲順序與索引順序完全相同,即索引的順序決定了表中行的存儲順序.表數據按照指定作為聚集索引的一個或多個鍵列排序并存儲.聚集索引類似于一本字典,字典按照字母順序存儲信息,并提供引導字幫助用戶快速定位信息的位...
聚集索引與非聚集索引的區別
聚集索引,是一種指明表數據物理存儲順序的索引.在聚集索引中,行的物理存儲順序與索引順序完全相同,即索引的順序決定了表中行的存儲順序.表數據按照指定作為聚集索引的一個或多個鍵列排序并存儲.聚集索引類似于一本字典,字典按照字母順序存儲信息,并提供引導字幫助用戶快速定位信息的位置,在同一頁上找到數據和它的引導字.相似的,聚集索引含有索引頁和實際數據頁,數據頁組成聚集索引的最底層(葉子節點).根節點中的每行將分別指向分支節點,分支節點的行又將指向其他的分支節點,最后一組分支節點將最終指向葉子節點.當你到達索引的最底層(即葉子節點)時,也就已經到達實際數據頁了.因為數據按照一個指定的順序物理地存儲,所以你只能為每個表創建一個聚集索引.
非聚集索引與聚集索引不同,它并不在物理上排列數據,即索引中的邏輯順序并不等同于表中行的物理順序.索引僅僅記錄指向表中行的位置的指針,這些指針本身是有序的,通過這些指針可以在表中快速地定位數據.在它的葉子節點中不含有實際表數據,取而代之的是,索引本身完全與數據分離,就像一本在書的后面帶有索引的書(索引只是指明到哪一頁,而數據并不與索引本身在一起).非聚集索引的葉子節點含有索引行,用于存儲決定行確定位置的索引數據和信息.位置信息可以是兩種類型之一,取決于表上是否存在聚集索引.如果有聚集索引,那么對于每行,聚集索引的鍵值存儲在非聚集索引的葉子節點之中,作為該行的定位器.這個值可以被直接用來定位數據,它位于聚集索引的葉子節點之中.如果聚集索引不是一個惟一索引, SQL Server就自動地為所有相同的索引鍵值分配一個內部值,讓它們惟一地以非聚集索引方式使用.這個內部值對于用戶來說是不可見的.如果表上沒有聚集索引,那么每個葉子節點含有一個行ID作為行的定位器,而不是聚集索引的一個鍵值.行ID是一個指針,由文件ID,頁數目和頁中的行數目組成.這個指針能夠精確地指示在哪里可以找到行,所以一旦到達行ID,只需要再進行一次I/O便可以讀取數據行.
常見的網絡操作系統有UNIX、Netware、Windows NT、Linux等,網絡軟件的漏洞及缺陷被利用,使網絡遭到入侵和破壞。