索引必知必會
索引原理
沒有索引的時候,搜索是全表進行掃描,速度很慢;
當我們建立了一個索引后,會生成一個索引的資料結構(例如索引二叉樹)
代價
- 索引會占用磁盤空間
- 對增刪改陳述句的效率有影響 -> 結合實際場景是查詢業務多還是增刪改業務多來判斷
所以不能盲目添加
規則
- 頻繁作為查詢條件的欄位可以創建索引
- 唯一性太差的欄位不適合單獨創建索引,即使頻繁查詢
- 頻繁更新的欄位不適合創建索引
- 不會出現在where子句中的欄位不要創建索引
索引型別
- 主鍵索引(primary key)
- 唯一索引(unique key)
因為要判斷是否唯一,也是需要查詢全表的 - 普通索引(index)
- 全文索引(fulltext)適用于MyISAM
實際開發中很少用這個索引,一般用Solr或者ElasticSearch
索引的使用
查詢索引
show indexes from 表名;
show keys from 表名;
添加索引
create [unique] index 索引名 on 表名 (列名);
alter table 表名 add [unique] index 索引名 (列名);
添加主鍵索引
alter table 表名 add primary key (列名);
注:在某表某列創建的這個索引,只對該列有效,即查詢時使用該列作為條件才有效果
如果某列的值不會重復,則優先考慮unique索引,否則使用普通索引
洗掉索引
drop index 索引名 on 表名;
洗掉主鍵索引
alter table 表名 drop primary key;
后續再更新索引調優的內容
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/539898.html
標籤:其他
