索引是一種特殊的數據庫結構,能夠用來快速查詢數據庫表中的特定記錄。索引是提升數據庫性能的重要方式。索引建立在表上,是對數據庫表中一列或多列的值進行排序的一種結構。能夠提升查詢速度。MySQL中,全部的數據類型均可以被索引。sql
增長查詢速度數據庫
利用索引的惟一性來控制記錄的惟一性性能
下降查詢中分組和排序的時間設計
能夠加速表與表之間的鏈接排序
存儲索引佔用磁盤空間索引
執行數據修改操做(INSERT、UPDATE、DELETE)產生索引維護table
每次修改表結構都須要重建索引效率
普通索引:這是最基本的索引,它沒有任何限制。基礎
唯一性索引:與普通索引相似,不一樣的就是:索引列的值必須惟一,但容許有空值(注意和主鍵不一樣)數據類型
全文索引:MySQL從3.23.23版開始支持全文索引和全文檢索,FULLTEXT索引僅可用於 MyISAM 表;
單列索引、多列索引
–建立普通索引:
create index 索引名稱 on 表名(列)
alter table 表名 add index 索引名稱 (列)
–建立惟一索引:
create unique index 索引名稱 on 表名(列名)
alter table 表名 add unique index 索引名稱 (列)
爲了使索引的使用效率更高,在建立索引的時候必須考慮在哪些字段上建立索引和建立什麼類型的索引。
a) 選擇唯一性索引
b) 爲常常須要排序、分組和聯合操做的字段創建索引
c) 爲常做爲查詢條件的字段創建索引
d) 限制索引的數目
e) 儘可能使用數據量少的索引
f) 儘可能使用前綴來索引
g) 刪除再也不使用或者不多使用的索引