SQL 建立索引

2021-09-27 07:20:35 字數 1844 閱讀 2718

總結:

什麼是索引:資料庫中的索引是某個表中一列或多列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。

分類:唯一索引(unique):不允許兩行具有相同的索引值(建立了唯一約束,系統將自動建立唯一索引)

主鍵索引:主鍵索引要求主鍵中的每個值是唯一的,(建立主鍵自動建立主鍵索引)

聚集索引(clustered):表中各行的物理順序與鍵值的邏輯(索引)順序相同,表中只能包含乙個聚集索引,主鍵列缺省為聚集索引

非聚集索引(nonclustered):表中各行的物理順序與鍵值的邏輯(索引)順序不匹配,表中可以有249個非聚集索引

建立索引的標準:用語頻繁搜尋的列;用語對資料進行排序的列

注意:如果表中僅有幾行,或列中只包含幾個不同的值,不推薦建立索引,因為sql server 在小型表中用索引搜尋資料所花的時間比逐行搜尋更長

1:基本語法:

create[索引型別]index索引名稱

on表名(列名)

withfillfactor = 填充因子值0~100

go

2:基本語法2

use 庫名

go

if exists (select*fromsysindexeswherename='ix_test_tname')--檢測是否已經存在ix_test_tname索引

dropindextest.ix_test_tname--如果存在則刪除

--建立索引

createnonclusteredindexix_test_tname--建立乙個非聚集索引

ontest(tname)--為test表的tname欄位建立索引

withfillfactor = 30--填充因子為30%

3:案例:

use activitydb   -- 資料庫名稱

goif exists (select * from sysindexes where name='ix_couponsinfodn_code')--檢測是否已經存在ix_test_tname索引  ix_couponsinfodn_code  自己取的索引名稱

drop index couponsinfodn.ix_couponsinfodn_code--如果存在則刪除  couponsinfodn 表明  

--建立索引

create nonclustered index ix_couponsinfodn_code --建立乙個非聚集索引

on couponsinfodn(code)  --為couponsinfodn表的code欄位建立索引 couponsinfodn是表    code是字段  

with

SQL 索引 建立索引

create index 語句用於在表中建立索引。在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料。您可以在表中建立索引,以便更加快速高效地查詢資料。使用者無法看到索引,它們只能被用來加速搜尋 查詢。注釋 更新乙個包含索引的表需要比更新乙個沒有索引的表更多的時間,這是由於索引本身也需要...

SQL 如何建立索引

create index 語句用於在表中建立索引。在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料。您可以在表中建立索引,以便更加快速高效地查詢資料。使用者無法看到索引,它們只能被用來加速搜尋 查詢。在表上建立乙個簡單的索引。允許使用重複的值 create index index na...

sql 指令碼建立索引

之前從沒有用sqlserver資料庫處理過大資料量的表,都是用oracle,然後一般為資料量較大的表新增索引或主鍵都是用plsql工具,今天正好需要為一張儲存於sqlserver資料庫的千萬級資料表增加索引,於是遇到了下面一系列的問題。我開始想當然的右鍵需要增加索引的表名 設計 管理索引和建 新增索...