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