SQL server 索引 簡介

2021-10-03 18:57:32 字數 1342 閱讀 6542

當表中有被設定為唯一的列時,sqlserver會自動建立乙個非聚集的唯一性索引

聚集索引和非聚集索引的根本區別是表記錄的排列順序和與索引的排列順序是否一致,其實理解起來非常簡單,還是舉字典的例子:如果按照拼音查詢,那麼都是從a-z的,是具有連續性的,a後面就是b,b後面就是c, 聚集索引就是這樣的,他是和表的物理排列順序是一樣的,例如有id為聚集索引,那麼1後面肯定是2,2後面肯定是3,所以說這樣的搜尋順序的就是聚集索引。非聚集索引就和按照部首查詢是一樣是,可能按照偏房查詢的時候,根據偏旁『弓』字旁,索引出兩個漢字,張和弘,但是這兩個其實乙個在100頁,乙個在1000頁,(這裡只是舉個例子),他們的索引順序和資料庫表的排列順序是不一樣的,這個樣的就是非聚集索引。

建立唯一索引

create unique index index_name  on tablename(columnname)

建立 聚集索引

create clustered index index_name on tablename(columnname)

沒有clustered的話,則預設建立 非聚集索引  nonclustered(可加可不加)

create  nonclustered   index index_name on tablename(columnname)

建立索引的原則:

1) 定義主鍵的資料列一定要建立索引。

2) 定義有外來鍵的資料列一定要建立索引。

3) 對於經常查詢的資料列最好建立索引。

4) 對於需要在指定範圍內的快速或頻繁查詢的資料列;

5) 經常用在where子句中的資料列。

6) 經常出現在關鍵字order by、group by、distinct後面的字段,建立索引。如果建立的是復合索引,索引的字段順序要和這些關鍵字後面的字段順序一致,否則索引不會被使用。

7) 對於那些查詢中很少涉及的列,重複值比較多的列不要建立索引。

8) 對於定義為text、image和bit的資料型別的列不要建立索引。

9) 對於經常訪問的列避免建立索引 

9) 限制表上的索引數目。對乙個存在大量更新操作的表,所建索引的數目一般不要超過3個,最多不要超過5個。索引雖說提高了訪問速度,但太多索引會影響資料的更新操作。

10) 對復合索引,按照欄位在查詢條件**現的頻度建立索引。在復合索引中,記錄首先按照第乙個字段排序。對於在第乙個欄位上取值相同的記錄,系統再按照第二個欄位的取值排序,以此類推。因此只有復合索引的第乙個字段出現在查詢條件中,該索引才可能被使用,因此將應用頻度高的字段,放置在復合索引的前面,會使系統最大可能地使用此索引,發揮索引的作用。

sql server 索引簡介

什麼是索引 拿漢語字典的目錄頁 索引 打比方 正如漢語字典中的漢字按頁存放一樣,sql server 中的資料記錄也是按頁存放的,每頁容量一般為 4k 為了加快查詢的速度,漢語字 詞 典一般都有按拼音 筆畫 偏旁部首等排序的目錄 索引 我們可以選擇按拼音或筆畫查詢方式,快速查詢到需要的字 詞 同理,...

SQL server索引 簡介,建立與使用

索引 索引分類 常用的6種 唯一索引 當建立唯一約束的時候系統就自動建立唯一索引 主鍵索引 當建立唯主鍵約束的時候系統就自動建立主鍵索引,主鍵索引的效能比唯一索引更快 聚集索引 建立聚集索引選擇可以物理排序的列,比如abc或者123 注意事項 乙個表只能包含乙個聚集索引,當設定某列為主鍵時,則該列缺...

SQL Server中索引使用及維護簡介

在應用系統中,尤其在聯機事務處理系統中,對資料查詢及處理速度已成為衡量應用系統成敗的標準。而採用索引來加快資料處理速度也成為廣大資料庫使用者所接受的優化方法。在良好的資料庫設計基礎上,能有效地使用索引是sql server取得高效能的基礎,sql server採用基於代價的優化模型,它對每乙個提交的...