資料庫基礎 索引(SQL Server)

2021-09-24 18:44:43 字數 2327 閱讀 6003

參考原文:

首先我們要知道資料庫索引是用來幹什麼的:

索引是為了加快資料查詢速度而引入的,資料庫中儲存的資料在物理層是隨機儲存的,對某個列建立索引就會對該列的關鍵值進行排序並用某種資料結構儲存他的值和對應的實體地址,在sql中用的資料結構是b樹。

索引的分類

1. 聚集索引

聚集索引會對資料按索引按索引關鍵字進行物理排序。對於經常要搜尋列在連續範圍內的值的查詢特別有效。

下列情況可考慮建立聚集引:

(1) 包含大量非重複值的列。

(2)使用下列運算子返回乙個範圍值的查詢: between and、>、>=、《和<=。(3)經常被用作連線的列,-般來說,這些列是外來鍵列。

(4) 對order by或group by子句中指定的列建立索引,可以使資料庫管理系統在查詢時不必對資料再進行排序,從而提高查詢效能。

2. 非聚集索引

非聚集索引不對資料按索引關鍵字值進行物理排序,只是對索引關鍵字排序。

下列情況可考慮建立聚集引:

(1) 包含大量非重複值的列。如果某列只有很少的非重複值,比如只有1和0,則不對這些列建立非聚集索引。

(2)經常作為查詢條件使用的列。(3) 經常作為連線和分組條件的列。

3. 唯一索引:

unique 例如:create unique index stusno on student(sno);

唯一索引值用於確保列不包含重複的值,唯一索引可以只包含乙個列(限制該列取值不重複),也可以有多個列共同組成(限制這些列的組合取值不重複)

當在列上建立unique和primary key約束時,系統會自動在這些約束列上建立唯一索引。聚集索引和非聚集索引都可以是唯一索引。

1. 建立索引

確定了索引關鍵字之後,就可以在資料庫的表上建立索引。建立索引使用的是createindex語句,

語法格式為:

create [unque] clustered 1 nonclustered]index 《索引名》 on 《表名》( 《列名》.)

其中:

unique表示要建立的索引是唯-索引。cilustered表示要建立的索引是聚集索引。

nonclustered表示要建立的索引是非聚集索引。如果沒有指定索引型別,則預設是建立非聚集索引。

//為sudent表的sname列建立非聚集索引。create index sname ind

onstudent

( sname )

//為student表的sid列建立唯聚集索引。

create

unique

clustered

index sid ind

onstudent

( sid )

//為employee表的firstname 和lastname列建立個聚集索引。

create

clustered

index ename jind

onemployee

( firstname, lastname )

刪除索引

索引經建立,就由資料庫管理系統自動使用和維護,不需要使用者干預。建立索引是為了加快資料的查詢效率,但如果要頻繁地對資料進行增、刪、改操作,則資料庫管理系統會花費很多時間來維護索引,這會降低資料的修改效率;另外,儲存索引需要占用額外的空間,這增加了資料庫的空間開銷。因此,當不需要某個索引時,可將其刪除。

在sql語言中,刪除索引使用的是drop index 語句。

語法格式為:

drop index 《表名》. 《索引名》

//刪除student表中的sname ind 索引。

drop

index student. sname

優點:

1.大大加快資料的檢索速度;

2.建立唯一性索引,保證資料庫表中每一行資料的唯一性;

3.加速表和表之間的連線;

4.在使用分組和排序子句進行資料檢索時,可以顯著減少查詢中分組和排序的時間。

缺點:

1.索引需要占用資料表以外的物理儲存空間

2.建立索引和維護索引要花費一定的時間

3.當對表進行更新操作時,索引需要被重建,這樣降低了資料的維護速度。

資料庫基礎 之 「索引」

索引是對資料庫表中一列或多列的值進行排序的一種結構,使用索引可快速訪問資料庫表中的特定資訊。資料庫索引好比是一本書前面的目錄,能加快資料庫的查詢速度。例如這樣乙個查詢 select from table1 whereid 44。如果沒有索引,必須遍歷整個表,直到id等於44的這一行被找到為止 有了索...

資料庫 SQL索引基礎

sql索引目錄 要想做好索引優化,知道索引的儲存結構是至關重要的。談到儲存就需要了解sql中的頁和區的概念 乙個區包含8個頁,它是管理空間的單位,分為如下兩類 一般情況下,給表或者索引申請新的空間時,從混合區分配,當這個表或者索引的空間超過8個頁大小時,會將原本在混合區的頁轉移到統一區管理。知識了區...

資料庫 SQL索引基礎

sql索引目錄 要想做好索引優化,知道索引的儲存結構是至關重要的。談到儲存就需要了解sql中的頁和區的概念 乙個區包含8個頁,它是管理空間的單位,分為如下兩類 一般情況下,給表或者索引申請新的空間時,從混合區分配,當這個表或者索引的空間超過8個頁大小時,會將原本在混合區的頁轉移到統一區管理。知識了區...