一.前言
如果合理的設計且使用索引的MySQL是一輛蘭博基尼的話,那麼沒有設計和使用索引的MySQL就是一個人力三輪車。
拿漢語字典的目錄頁(索引)打比方,我們可以按拼音、筆畫、偏旁部首等排序的目錄(索引)快速查找到需要的字。
實際上,索引也是一張表,該表保存了主鍵與索引字段,並指向實體表的記錄。
雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,如對錶進行INSERT、UPDATE和DELETE。
因爲更新表時,MySQL不僅要保存數據,還要保存一下索引文件。
二.索引類型
UNIQUE(唯一索引):索引列的值必須唯一,但允許有空值。
INDEX(普通索引):允許出現相同的索引內容;
PROMARY KEY(主鍵索引):主鍵只能作用於一個列上,添加主鍵索引時,你需要確保該主鍵默認不爲空(NOT NULL)
組合索引:將多個字段建到一個索引裏,列值的組合必須唯一;
三.用alter table 語句創建索引
格式: ALTER TABLE 表名 ADD 索引類型 (unique,primary key,fulltext,index)[索引名](字段名);
-- 普通索引
alter table table_name add index index_name (column_list);
Eg:alter table dict_item add INDEX index_itemIds(ITEM_ID);
-- 唯一索引
alter table table_name add unique (column_list) ;
Eg:alter table dict_item DROP index index_itemIds;
-- 主鍵索引
alter table table_name add primary key (column_list);
Eg:alter table dict_item add PRIMARY KEY(ITEM_ID);
四.刪除索引
drop index index_name on table_name ;
alter table table_name drop index index_name ;
alter table table_name drop primary key ;
五.查詢所有的主鍵
SHOW INDEX FROM dict_item;