sql中有兩種索引分別是什么 數(shù)據(jù)庫(kù)中的索引是什么意思?有什么用途?
數(shù)據(jù)庫(kù)中的索引是什么意思?有什么用途?索引是一種獨(dú)立的物理存儲(chǔ)結(jié)構(gòu),它對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序。它是表中一列或多列的值的集合,以及指向數(shù)據(jù)頁(yè)的邏輯指針的相應(yīng)列表,這些數(shù)據(jù)頁(yè)在物理上標(biāo)識(shí)表中的
數(shù)據(jù)庫(kù)中的索引是什么意思?有什么用途?
索引是一種獨(dú)立的物理存儲(chǔ)結(jié)構(gòu),它對(duì)數(shù)據(jù)庫(kù)表中一列或多列的值進(jìn)行排序。它是表中一列或多列的值的集合,以及指向數(shù)據(jù)頁(yè)的邏輯指針的相應(yīng)列表,這些數(shù)據(jù)頁(yè)在物理上標(biāo)識(shí)表中的這些值。索引的作用相當(dāng)于書(shū)籍的目錄,你可以根據(jù)目錄中的頁(yè)碼快速找到需要的內(nèi)容。
索引是存儲(chǔ)表定列的值數(shù)據(jù)結(jié)構(gòu)(最常見(jiàn)的是B樹(shù)、哈希表索引和R樹(shù))。索引是在表的列上創(chuàng)建的。因此,要記住的關(guān)鍵點(diǎn)是,索引包含表中列的值,這些值存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)中。請(qǐng)記住:索引是一種數(shù)據(jù)結(jié)構(gòu)。
使用索引的全部意義在于通過(guò)減少表中需要查詢的記錄(行)數(shù)量來(lái)加快搜索速度。
假設(shè)有一個(gè)學(xué)生名單,有100條數(shù)據(jù)。詢問(wèn)那個(gè)名叫小明的學(xué)生。
一般情況下,從采用小明名字的學(xué)生中選擇*。因?yàn)槲覀兿氲玫矫總€(gè)叫小明的學(xué)生的信息,我們可以 找到第一個(gè)符合條件的行后,不要停止查詢,因?yàn)榭赡苓€有其他符合條件的行。因此,我們必須逐行搜索,直到最后一行——這意味著數(shù)據(jù)庫(kù)要檢查數(shù)千行數(shù)據(jù),才能找到那個(gè)叫小明的學(xué)生。這就是所謂的全表掃描。
假設(shè)我們?cè)诹忻蟿?chuàng)建一個(gè)B樹(shù)索引。當(dāng)我們使用SQL查找名字叫小明的學(xué)生時(shí),我們不使用。;不需要掃描整個(gè)表。相反,使用索引搜索來(lái)查找名為 小明 ,因?yàn)樗饕寻醋帜疙樞蚺判?。索引已?jīng)排序,這意味著查詢姓名會(huì)快得多,因?yàn)樾彰?小 都是安排在一起的。另外很重要的一點(diǎn)是,索引還存儲(chǔ)了表中相應(yīng)行的指針,以獲取其他列的數(shù)據(jù)。
聚集索引和非聚集索引的區(qū)別底層?
事實(shí)上,索引可以理解為一種特殊的目錄。微軟 SQL SERVER提供了兩種索引:聚集索引和非聚集索引。下面,讓 說(shuō)明了聚集索引和非聚集索引之間的區(qū)別:
其實(shí)我們的漢語(yǔ)詞典的正文本身就是一個(gè)聚簇索引。例如,如果我們想查找單詞 "安 ",因?yàn)?"安 "是 "安 ",而根據(jù)拼音對(duì)漢字進(jìn)行排序的字典是從英文字母 "A "并以 "Z ",然后是單詞 "安 "自然排在字典的前面。如果你能 查看了所有以 amp開(kāi)頭的部分后,我找不到這個(gè)單詞A ",說(shuō)明這個(gè)詞不在你的字典里。換句話說(shuō),字典的主體本身就是一個(gè)目錄,您不必 你不需要查閱其他目錄來(lái)找到你需要找的東西。的內(nèi)容。我們稱這種文本內(nèi)容本身為按照一定規(guī)則排列的目錄聚集索引 "。
如果你遇到一個(gè)不認(rèn)識(shí)的單詞,不要用。;t不知道它的發(fā)音,這時(shí)候你需要根據(jù)偏旁查找你要找的單詞,然后根據(jù)單詞后面的頁(yè)碼直接翻到一頁(yè),找到你要找的單詞。但是,你結(jié)合部首目錄和字典找到的單詞排序,并不是真正的文本排序方法。例如,如果你查找單詞 "張 ",我們可以看到單詞 "張 "在字典中部首搜索后是672,而單詞 "池 "在單詞 "張 "在字典里,但是頁(yè)碼是63及其以下。顯然,這些詞并不在單詞 amp的上下張 "分別是?,F(xiàn)在連續(xù)詞 "遲、張與弓弩您看到的實(shí)際上是它們?cè)诜蔷奂饕械捻樞?,這是非聚集索引中詞典體中單詞的映射。這樣我們就可以找到你需要的單詞,但是需要兩個(gè)過(guò)程,先在目錄中找到結(jié)果,然后翻到你需要的頁(yè)碼。我們稱這種分類方法為目錄是純目錄,文本是純文本非聚集索引 "。