聚集索引和非聚集索引的區別

2021-07-27 09:14:58 字數 1800 閱讀 3121

聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致

,聚集索引表記錄的排列順序與索引的排列順序一致,優點是查詢速度快,因為一旦

具有第乙個索引值的紀錄被找到,具有連續索引值的記錄也一定物理的緊跟其後。

聚集索引的缺點是對錶進行修改速度較慢,這是為了保持表中的記錄的物理順序與索

引的順序一致,而把記錄插入到資料頁的相應位置,必須在資料頁中進行資料重排,

降低了執行速度。建議使用聚集索引的場合為:

a.此列包含有限數目的不同值;

b.查詢的結果返回乙個區間的值;

c.查詢的結果返回某值相同的大量結果集。

非聚集索引指定了表中記錄的邏輯順序,但記錄的物理順序和索引的順序不一致

,聚集索引和非聚集索引都採用了b+樹的結構,但非聚集索引的葉子層並不與實際的

資料頁相重疊,而採用葉子層包含乙個指向表中的記錄在資料頁中的指標的方式。非

聚集索引比聚集索引層次多,新增記錄不會引起資料順序的重組。建議使用非聚集索

引的場合為:

a.此列包含了大量數目不同的值;

b.查詢的結束返回的是少量的結果集;

c.order by 子句中使用了該列。

--不用索引查詢

select * from indextesttable whit(index(0))

where status='b'

--建立聚集索引

create clustered index icindextesttable

on indextesttable(status)

go--使用索引查詢

select * from indextesttable with(index(icindextesttable))

where status='b' 

表中經常有乙個列或列的組合,其值能唯一地標識表中的每一行。這樣的一列或多列

稱為表的主鍵.(預設為聚集索引)

聚集索引確定表中資料的物理順序。聚集索引類似於**簿,後者按姓氏排列數

據。由於聚集索引規定資料在表中的物理儲存順序,因此乙個表只能包含乙個聚集索

引。但該索引可以包含多個列(組合索引),就像**簿按姓氏和名字進行組織一樣

。非聚集索引與課本中的索引類似。資料儲存在乙個地方,索引儲存在另乙個地方

,索引帶有指標指向資料的儲存位置。索引中的專案按索引鍵值的順序儲存,而表中

的資訊按另一種順序儲存(這可以由聚集索引規定)。

如果在表中未建立聚集索引,則無法保證這些行具有任何特定的順序。

聚集索引..就像我們新華字典中的按拼音排序..即你查.."愛"字..可以在前面看到"

癌"字...但不你不在前後頁中看到"受"字..

而非聚集索引..就是新華字典中的按部首..筆劃排序...

聚集索引相當於我們書本上前面的目錄的一樣,它可以方便快速的找到你想找的內容

,而非聚集索引就相當於書最後幾頁的解釋,它是對書中某個語句或者是生詞的解釋

,就像我們上學時候的地理說一樣,書後面都有各種地理名稱的英文解釋;

《資料庫原理》裡面的解釋:聚集索引的順序就是資料的物理儲存順序,而非聚集索

引的順序和資料物理排列無關。因為資料在物理存放時只能有一種排列方式,所以一

個表只能有乙個聚集索引。

在sql server中,索引是通過二叉樹的資料結構來描述的;我們可以如此理解這個兩

種索引:聚集索引的葉節點就是資料節點,而非聚集索引的葉節點仍然是索引節點,

只不過其包含乙個指向對應資料塊的指標。

聚集索引會降低   insert,和update操作的效能,所以,是否使用聚集索引要全面

衡量。 

聚集索引 和 非聚集索引區別

一.mysql的索引 mysql中,不同的儲存引擎對索引的實現方式不同,大致說下myisam和innodb兩種儲存引擎。myisam的b tree的葉子節點上的data,並不是資料本身,而是資料存放的位址。主索引和輔助索引沒啥區別,只是主索引中的key一定得是唯一的。這裡的索引都是非聚簇索引。myi...

聚集索引和非聚集索引區別

聚集索引 資料行的物理順序與列值 一般是主鍵那一列 的邏輯順序相同,乙個表只能擁有乙個聚集索引!非聚集索引 該索引中索引的邏輯順序與磁碟上行的物理順序不同乙個表可以擁有多個非聚集索引!非聚集索引可細分成普通索引,唯一索引,全文索引 區別 聚集索引 可以幫助把很大的範圍,迅速減小範圍。但是查詢該記錄,...

聚集索引和非聚集索引的區別

暫且摘錄如下 摘錄1 前者加在不常更新的表,後者加在經常更新的表 摘錄2 使用聚集索引 聚集索引確定表中資料的物理順序。聚集索引類似於 簿,後者按姓氏排列資料。由於聚集索引規定資料在表中的物理儲存順序,因此乙個表只能包含乙個聚集索引。但該索引可以包含多個列 組合索引 就像 簿按姓氏和名字進行組織一樣...