本文主要介紹sql數(shù)據(jù)庫中聚集索引和非聚集索引有什么區(qū)別?(sql非聚集索引),下面一起看看sql數(shù)據(jù)庫中聚集索引和非聚集索引有什么區(qū)別?(sql非聚集索引)相關(guān)資訊。
前言在sql 2012基礎(chǔ)課學(xué)習(xí)過程中,偶爾穿插其他內(nèi)容進(jìn)行講解,相信看過sql s測試表并用sqlstudy創(chuàng)建表{} {} (測試dbo. {}不為空,{1} {nchar }(10)為空,{2} {nchar }(10)為空)然后讓 讓我們再次創(chuàng)建測試數(shù)據(jù)。插入{sqlstudy}。{ } { } dbo .測試({id},{1},{2})選項1,所有選項的 第一個 , second1 alliance 2,所有 第一個 , 第二聯(lián)盟3。;第一個 , second 3 alliance 4 ;第一次 , 第二聯(lián)盟5。;第一個5。然后,我們在表的第一列和第二列上創(chuàng)建一個聚集索引,并創(chuàng)建一個非聚集索引{} {}對ix_mytable_nonclustered(dbo ),如下所示。{ 測試 } {第一個asc,{第二個asc)這個時候我們同時運(yùn)行兩個查詢來查看它的執(zhí)行計劃:最后一個已經(jīng)說了,請啟用實(shí)際執(zhí)行的計劃。從{dbo}中選擇id。{test}其中{ first } = 第一個 和{秒} = 第二個 。從測試dbo的{} {}中選擇兩個。;第一個 和{秒} = 第二個我。此時我們看到的實(shí)現(xiàn)方案如下:毫無疑問,我們可以斷定查詢1是全表掃描,查詢2使用非聚集索引搜索。我們應(yīng)該對這個結(jié)論沒有任何疑問,因為在第二個查詢的第二列創(chuàng)建非聚集索引和id查詢1之前,會導(dǎo)致全掃描查詢1和非聚集索引查詢2。讓 為表中的列id創(chuàng)建一個聚集索引。創(chuàng)建一個聚集索引{} {}對ix_mytable_clust測試} {asc)此時,我們再次運(yùn)行以下查詢:select id from { } { } in 測試 dbo . { first } = ;第一個 和{秒} = second1從測試dbo的{}中選擇兩個。;第一個 和{秒} = 第二,現(xiàn)在看看查詢執(zhí)行計劃。通過為上面的列id創(chuàng)建聚集索引,我們可以立即知道它們都是通過索引進(jìn)行搜索的,的確如此,但是您已經(jīng)注意到,當(dāng)我們在列id中創(chuàng)建聚集索引理論時,我們應(yīng)該只查找聚集索引。啊,這就是我們要討論的問題。我們會在對列創(chuàng)建聚集索引時注意這個問題的概述,查詢條件是創(chuàng)建非聚集索引。此時,創(chuàng)建查詢執(zhí)行計劃的聚集索引列是非聚集索引搜索。實(shí)際發(fā)生的是一個內(nèi)部引用非聚集索引的聚集索引。創(chuàng)建聚集索引后,將根據(jù)物理邏輯順序創(chuàng)建表中的數(shù)據(jù)。如果未創(chuàng)建聚集索引,非聚集索引將指向表中的數(shù)據(jù),并返回最終數(shù)據(jù),但一旦創(chuàng)建了非聚集索引,聚集索引將指向聚集索引的重建。這里對careyson park聚集索引的描述是一個b樹結(jié)構(gòu)。與聚集索引不同,樹的葉節(jié)點(diǎn)存儲指針堆或聚集索引的提升非常準(zhǔn)確。如果創(chuàng)建聚集索引,指向非聚集索引的指針將指向聚集索引,否則將指向堆,即表中的數(shù)據(jù)。此時,我們可以得出這樣的結(jié)論:當(dāng)對檢索到的列創(chuàng)建聚集索引時(只返回創(chuàng)建聚集索引的列),查詢不使用聚集索引查找來檢索結(jié)果,而是使用非聚集索引查找來檢索結(jié)果。在總結(jié)之前,首先要對這個問題做一個定義好的個人感受,比如非聚集索引的定義:非聚集索引b樹結(jié)構(gòu),聚集索引b樹的葉節(jié)點(diǎn),存儲一個指向堆或者聚集索引。第一次看到這句話的時候,我沒有 我沒有任何感覺??偟膩碚f,感覺似乎是清晰的。遇到這樣的問題,其實(shí)就是對虧損的認(rèn)識不夠深入或者不確定的時候。當(dāng)您可以將這個定義或場景作為一個例子時,兒子,它可能真的懂。這是本文的結(jié)尾。對于sql,本系列將簡要講解內(nèi)容和深刻理解。同時還會一步步講查詢性能,從拋出問題到最終解決問題都是一大堆貨。以上是本文的全部內(nèi)容。希望這篇文章的內(nèi)容能給你的學(xué)習(xí)或者工作帶來一些幫助。有問題可以留言交流。希望你能得到更多的支持。
了解更多sql數(shù)據(jù)庫中聚集索引和非聚集索引有什么區(qū)別?(sql非聚集索引)相關(guān)內(nèi)容請關(guān)注本站點(diǎn)。