mysql總結10------索引☆

       

1.概念:索引是優化數據庫查詢速度的重要途徑mysql

 

2.索引的類型:sql

 

<1>.普通索引:最基本的索引類型,沒有惟一性之類的限制。數據庫

 

單例索引create index valIndex on t_tableA(val(20));ide

 

多列索引create index products_index on t_products(prod_name(20),prod_price);優化

 

說明:(1.)多列索引,同時查,索引生效。spa

(2.)只查prod_name(20),索引生效索引

(3.)只查prod_price,索引不生效it


聯合索引,以左邊的爲準,單獨用左邊的會生效,單獨用右邊的不會生效。table

其實總結一下:以左邊第一個或者全部會生效,其餘的狀況都不生效。class

eg.(A,B,C)三個聯合索引,A和ABC會生效,其餘的狀況下不生效。



<2>.惟一索引:和普通索引基本相同,可是全部的索引列只能出現一次,保持惟一性。

           create unique index valIndex2 on t_tableB(val(20));

           

<3>.主鍵索引主鍵索引是一種特殊的惟一索引在創建主鍵時自動建立

 

<4>.全文索引:語法同普通索引相同,就是能夠在文本類型列上能夠建立索引。

(全文索引能夠在varchar或text類型上建立)           

 

3.索引的缺點

<1>.雖然索引大大提升了查詢速度,可是會下降更新表的速度

好比對錶的insert、update、delete操做。

由於更新表時,mysql不單單要保存數據,還要保存索引文件

 

<2>.創建索引會佔用磁盤空間若是在一個大表上建立了多種索引組合,索引文件會膨脹的很快。

 

4.注意事項:

<1>.索引是創建在經常使用的列上,好比你常常根據某一列(用戶名,密碼)去查數據

<2>.索引至關於字典前面的目錄。

<3>.加不加索引要權衡一下是查詢多,仍是update,insert,delete多!!!

 

《4》並非全部的表都適合加索引的!!

 

①記錄少是不要加索引!

②每次查詢的數據佔總的數量很大時,不要加索引。

③多列索引:對查詢頻率高的列放在前面。

④數據庫量很大,而且每次查詢的數據佔總量比較少時,加索引誰體會到明顯的效率!!

相關文章
相關標籤/搜索