1. 程式人生 > >mysql資料庫——索引

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;