什麼是索引
數據庫索引,是數據庫管理系統中一個排序的數據結構,以協助快速查詢、更新數據庫表中數據。索引的實現通常使用B樹及其變種B+樹。
索引優點
- 通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。
- 可以大大加快數據的檢索速度,這也是創建索引的最主要的原因。
- 可以加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義。
- 在使用分組和排序子句進行數據檢索時,同樣可以顯著減少查詢中分組和排序的時間。
- 通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的性能。
索引缺點
- 創建索引和維護索引要耗費時間,這種時間隨着數據量的增加而增加。
- 索引需要佔物理空間,除了數據表佔數據空間之外,每一個索引還要佔一定的物理空間,如果要建立聚簇索引,那麼需要的空間就會更大。
- 當對錶中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。
索引創建
1. 建表時創建
create table 表名 {
[字段名] [數據類型] [約束條件]
}
約束條件:
- UNIQUE:可選。表示索引爲唯一性索引。
- FULLTEXT:可選。表示索引爲全文索引。
- SPATIAL:可選。表示索引爲空間索引。
- INDEX和KEY:用於指定字段爲索引,兩者選擇其中之一就可以了,作用是 一樣的。
- 索引名:可選。給創建的索引取一個新名稱。
- 字段名1:指定索引對應的字段的名稱,該字段必須是前面定義好的字段。
- 長度:可選。指索引的長度,必須是字符串類型纔可以使用。
- ASC:可選。表示升序排列。
- DESC:可選。表示降序排列。
2. 建表後創建
alter table 表名 add [約束條件] index (字段名)
查看已創建索引
show index from 表名
刪除索引
drop index 索引名 on 表名