一、索引的概念
索引就是加快檢索表中數據的方法。數據庫的索引類似於書籍的索引。在書籍中,索引允許用戶不必翻閱完整個書就能迅速地找到所需要的信息。在數據庫中,索引也允許數據庫程序迅速地找到表中的數據,而不必掃描整個數據庫。
二、索引的特點
1.索引可以加快數據庫的檢索速度
2.索引降低了數據庫插入、修改、刪除等維護任務的速度
3.索引創建在表上,不能創建在視圖上
4.索引既可以直接創建,也可以間接創建
5.可以在優化隱藏中,使用索引
6.使用查詢處理器執行SQL語句,在一個表上,一次只能使用一個索引
7.其他
三、索引的優點
1.創建唯一性索引,保證數據庫表中每一行數據的唯一性
2.大大加快數據的檢索速度,這也是創建索引的最主要的原因
3.加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義。
4.在使用分組和排序子句進行數據檢索時,同樣可以顯著減少查詢中分組和排序的時間。
5.通過使用索引,可以在查詢的過程中使用優化隱藏器,提高系統的性能。
四、索引的缺點
1.創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加
2.索引需要占物理空間,除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大
3.當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,降低了數據的維護速度
五、索引分類
1.直接創建索引和間接創建索引
直接創建索引: CREATE INDEX mycolumn_index ON mytable (myclumn)
間接創建索引:定義主鍵約束或者唯一性鍵約束,可以間接創建索引
2.普通索引和唯一性索引
普通索引:
CREATE INDEX mycolumn_index ON mytable (myclumn)
唯一性索引:保證在索引列中的全部數據是唯一的,對聚簇索引和非聚簇索引都可以使用
CREATE UNIQUE COUSTERED INDEX myclumn_cindex ON mytable(mycolumn)