日韩小视频-日韩久久一区二区三区-日韩久久一级毛片-日韩久久久精品中文字幕-国产精品亚洲精品影院-国产精品亚洲欧美云霸高清

下載吧 - 綠色安全的游戲和軟件下載中心

軟件下載吧

當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > MS_SQL > SQL基礎(chǔ):SQL Server中索引的用法詳解

SQL基礎(chǔ):SQL Server中索引的用法詳解

時(shí)間:2024-02-05 11:03作者:下載吧人氣:14

一、索引的介紹

什么是索引?

索引是一種磁盤(pán)上的數(shù)據(jù)結(jié)構(gòu),建立在表或視圖的基礎(chǔ)上。使用索引可以使數(shù)據(jù)的獲取更快更高校,也會(huì)影響其他的一些性能,如插入或更新等。

索引主要分為兩種類(lèi)型:

1、聚集索引和非聚集索引

字典的目錄就是一個(gè)索引,按照拼音查詢想要的字就是聚集索引(物理連續(xù),頁(yè)碼與目錄一一對(duì)應(yīng)),偏旁部首就是一個(gè)非聚集索引(邏輯連續(xù),頁(yè)碼與目錄不連續(xù))。

聚集索引存儲(chǔ)記錄是物理上連續(xù)存在的,而非聚集索引是邏輯上的連續(xù),物理存儲(chǔ)并不連續(xù)。

聚集索引一個(gè)表中只能有一個(gè),而非聚集索引一個(gè)表中可以有多個(gè)。

2、索引的利弊

使用索引是為了避免全表掃描,因?yàn)槿頀呙枋菑拇疟P(pán)上讀取表的每一個(gè)數(shù)據(jù)頁(yè),如果有索引指向數(shù)據(jù)值,則只需要讀少次數(shù)的磁盤(pán)就可以。

帶索引的表在數(shù)據(jù)庫(kù)中占用更多的空間,同樣增、刪、改數(shù)據(jù)的命令所需時(shí)間會(huì)更長(zhǎng)。

3、索引的存儲(chǔ)機(jī)制

書(shū)中的目錄是一個(gè)字詞以及所在的頁(yè)碼列表,數(shù)據(jù)庫(kù)中的索引是表中的值以及各值存儲(chǔ)位置的列表。

聚集索引是在數(shù)據(jù)庫(kù)中新開(kāi)辟一個(gè)物理空間,用來(lái)存放他排列的值,當(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)將在磁盤(pán)中分配一段以8k為單位的連續(xù)空間。當(dāng)一個(gè)8k用完的時(shí)候,數(shù)據(jù)庫(kù)指針會(huì)自動(dòng)分配一個(gè)8k的空間,每個(gè)8k的空間稱(chēng)為一個(gè)數(shù)據(jù)頁(yè),并分配從0-7的頁(yè)號(hào),每個(gè)文件的第0頁(yè)記錄引導(dǎo)信息叫頁(yè)頭,每8個(gè)數(shù)據(jù)頁(yè)由64k組成形成擴(kuò)展區(qū)。全部數(shù)據(jù)頁(yè)的組合形成堆。

SQL Server規(guī)定行不能跨越數(shù)據(jù)頁(yè),所以每行記錄的最大數(shù)量只能是8k,這就是為什么char和varchar這兩種字符類(lèi)型容量要限制在8k以內(nèi)的原因,存儲(chǔ)超過(guò)8k的數(shù)據(jù)應(yīng)使用text類(lèi)型,其實(shí)text類(lèi)型的字段值不能直接錄入和保存,它是存儲(chǔ)一個(gè)指針,指向由若干個(gè)8k的數(shù)據(jù)頁(yè)所組成的擴(kuò)展區(qū),真正的數(shù)據(jù)其實(shí)放在這些數(shù)據(jù)頁(yè)中。

二、設(shè)置索引的權(quán)衡

1、什么情況下設(shè)置索引

  • 定義主鍵的數(shù)據(jù)列(sql server默認(rèn)會(huì)給主鍵一個(gè)聚集索引)。
  • 定義有外鍵的數(shù)據(jù)列
  • 對(duì)于經(jīng)常查詢的數(shù)據(jù)列
  • 對(duì)于需要在指定范圍內(nèi)頻繁查詢的數(shù)據(jù)列
  • 經(jīng)常在where子句中出現(xiàn)的數(shù)據(jù)列
  • 經(jīng)常出現(xiàn)在關(guān)鍵字 order by、group by、distinct后面的字段。

2、什么情況下不要設(shè)置索引

  • 查詢中很少涉及的列,重復(fù)值比較多的列。
  • text、image、bit數(shù)據(jù)類(lèi)型的列
  • 經(jīng)常存取的列
  • 經(jīng)常更新操作的表,索引一般不要超過(guò)3個(gè)、最多不要5個(gè)。雖說(shuō)提高了訪問(wèn)速度,但會(huì)影響更新操作。

三、聚集索引

1、使用SSMS創(chuàng)建聚集索引

展開(kāi)要?jiǎng)?chuàng)建索引的表->右擊索引->選擇新建索引->聚集索引->新建索引點(diǎn)添加->選擇列->選擇升序或降序->輸入名字->確定。

默認(rèn)情況下,生成主鍵的同時(shí)將自動(dòng)創(chuàng)建一個(gè)聚集索引。

2、使用T-SQL創(chuàng)建聚集索引

create clustered index index_name /*聚集索引名*/
on table_name
(
id desc
)
with(drop_existing=on); /*如果存在則刪除*/
標(biāo)簽MSSQL,SQLServer,技術(shù)文檔,數(shù)據(jù)庫(kù),SQLSERVER
查看所有評(píng)論+

網(wǎng)友評(píng)論

網(wǎng)友
您的評(píng)論需要經(jīng)過(guò)審核才能顯示

熱門(mén)閱覽

最新排行

公眾號(hào)

盖楼回复X

(您的评论需要经过审核才能显示)

主站蜘蛛池模板: 91免费永久国产在线观看 | 97久久免费视频 | 99久久精品国产一区二区三区 | 美女被cao免费看在线看网站 | fc2成年手机免费共享视频 | 欧美成人精品福利在线视频 | 欧美激情精品久久久久久久久久 | 日韩亚洲一区中文字幕在线 | 美欧毛片 | 免费一级a毛片在线播放视 免费一级α片在线观看 | 亚洲视频二 | 男女视频在线看 | 色老头一级毛片 | 一级片在线免费看 | 美女福利视频午夜在线 | 污美女网站www在线观看 | 大伊香蕉精品视频在线观看 | 久草在线中文最新视频 | 国产美女在线精品亚洲二区 | 亚洲精品一区二区 | 一区二区三区四区在线播放 | 精品无码久久久久国产 | 日韩精品久久久毛片一区二区 | 99久久精品费精品国产一区二区 | 成人免费视频网址 | 九九精品激情在线视频 | 成人国内精品久久久久影院 | 亚洲天堂网视频 | 免费中文字幕在线 | 亚洲三级成人 | 国产精品视频一区二区三区 | 亚洲天堂视频在线免费观看 | 日本一级毛片高清免费观看视频 | 色伊人国产高清在线 | 久久免费精品视频在线观看 | 国产精品三级手机在线观看 | 国产精品一区二区免费 | 九九99视频在线观看视频观看 | 国产精品免费观看视频播放 | 精品国产高清在线看国产 | 欧美另类色 |