時(shí)間:2024-02-05 11:03作者:下載吧人氣:12
索引是一種磁盤上的數(shù)據(jù)結(jié)構(gòu),建立在表或視圖的基礎(chǔ)上。使用索引可以使數(shù)據(jù)的獲取更快更高校,也會(huì)影響其他的一些性能,如插入或更新等。
索引主要分為兩種類型:
字典的目錄就是一個(gè)索引,按照拼音查詢想要的字就是聚集索引(物理連續(xù),頁碼與目錄一一對應(yīng)),偏旁部首就是一個(gè)非聚集索引(邏輯連續(xù),頁碼與目錄不連續(xù))。
聚集索引存儲(chǔ)記錄是物理上連續(xù)存在的,而非聚集索引是邏輯上的連續(xù),物理存儲(chǔ)并不連續(xù)。
聚集索引一個(gè)表中只能有一個(gè),而非聚集索引一個(gè)表中可以有多個(gè)。
使用索引是為了避免全表掃描,因?yàn)槿頀呙枋菑拇疟P上讀取表的每一個(gè)數(shù)據(jù)頁,如果有索引指向數(shù)據(jù)值,則只需要讀少次數(shù)的磁盤就可以。
帶索引的表在數(shù)據(jù)庫中占用更多的空間,同樣增、刪、改數(shù)據(jù)的命令所需時(shí)間會(huì)更長。
書中的目錄是一個(gè)字詞以及所在的頁碼列表,數(shù)據(jù)庫中的索引是表中的值以及各值存儲(chǔ)位置的列表。
聚集索引是在數(shù)據(jù)庫中新開辟一個(gè)物理空間,用來存放他排列的值,當(dāng)有新數(shù)據(jù)插入時(shí),他會(huì)重新排列整個(gè)物理存儲(chǔ)空間。
非聚集索引只包含原表中的非聚集索引的列和指向?qū)嶋H物理表的一個(gè)指針。
數(shù)據(jù)表的基本結(jié)構(gòu)
當(dāng)一個(gè)新的數(shù)據(jù)表創(chuàng)建時(shí),系統(tǒng)將在磁盤中分配一段以8k為單位的連續(xù)空間。當(dāng)一個(gè)8k用完的時(shí)候,數(shù)據(jù)庫指針會(huì)自動(dòng)分配一個(gè)8k的空間,每個(gè)8k的空間稱為一個(gè)數(shù)據(jù)頁,并分配從0-7的頁號,每個(gè)文件的第0頁記錄引導(dǎo)信息叫頁頭,每8個(gè)數(shù)據(jù)頁由64k組成形成擴(kuò)展區(qū)。全部數(shù)據(jù)頁的組合形成堆。
SQL Server規(guī)定行不能跨越數(shù)據(jù)頁,所以每行記錄的最大數(shù)量只能是8k,這就是為什么char和varchar這兩種字符類型容量要限制在8k以內(nèi)的原因,存儲(chǔ)超過8k的數(shù)據(jù)應(yīng)使用text類型,其實(shí)text類型的字段值不能直接錄入和保存,它是存儲(chǔ)一個(gè)指針,指向由若干個(gè)8k的數(shù)據(jù)頁所組成的擴(kuò)展區(qū),真正的數(shù)據(jù)其實(shí)放在這些數(shù)據(jù)頁中。
展開要?jiǎng)?chuàng)建索引的表->右擊索引->選擇新建索引->聚集索引->新建索引點(diǎn)添加->選擇列->選擇升序或降序->輸入名字->確定。
默認(rèn)情況下,生成主鍵的同時(shí)將自動(dòng)創(chuàng)建一個(gè)聚集索引。
網(wǎng)友評論