mysql資料庫——索引
索引是儲存引擎用於快速查詢記錄的一種資料結構,
快速查詢的捷徑。
索引就類似一本書的目錄,
通過合理的使用資料庫索引可以大大提高系統的訪問效能。
理解索引也是資料庫效能調優的起點。
索引的分類
按照生成索引的列的數量可以分為單列索引,和 ,組合索引。
按照功能:
1. 普通索引
最基本的索引,沒有任何限制
2.唯一索引:
與普通索引相識,唯一的不同就是 必須唯一,允許有空值
3.主鍵索引:
是一種特殊的唯一索引,不允許有空值,在建立主鍵時建立。
4.全文索引:
最好先插入資料 後建立索引,先建立索引後插入資料效率不高。
然而 生成全文索引是一個非常消耗時間非常消耗磁碟空間的做法。
索引的結構
Mysql 索引主要有兩種結構,BTree 和 Hash。
mysql中一般使用BTree(預設)
由於hash索引結構的特殊性,它的檢索效率非常高。但是有侷限性:
1.hash索引只滿足“=”,“in”,“< = / >=”查詢,不能使用範圍查詢。
2.hash索引無法避免資料的排序運算;
3.hash不能利用部分索引查詢,組合索引無法利用hash索引的
4.hash索引無法避免表掃描
5.hash索引遇到大量hash值相等的情況下效能比BTree 低
建立索引
建立一個主鍵就會建立一個主鍵索引。
create index_name on table(colum(length)); //普通索引
create unique index index_name on ......... //唯一索引
create fulltext index index_name on ...... //全文索引
刪除索引
drop INDEX index_name on table;
顯示索引資訊
show index from table_name;