索引是什麼?
索引是對資料庫表中一列或多列的值進行排序的一種結構。MySQL索引的建立對於MySQL的高效執行是很重要的,
索引可以大大提高MySQL的檢索速度。
B+樹:是透過二叉查詢樹,再由平衡二叉樹,B樹演化而來
建立索引的三種方式
# 方式一: create table t5( id int primary key auto_increment, name varchar(4), email varchar(10), unique key uni_name(name), index xxx(email) ); # 方式二: alter table t5 add index xxx(email); # 方式三: create index yyy on t5(name);
增加聚集索引主鍵
alter table s1 add primary key(id);
增加普通索引
alter table s1 add index xxx(email);
建立唯一索引
CREATE UNIQUE INDEX uk_users_name ON t_users(name);
#uk_users_name:自由定義的唯一索引名稱
#t_users:表格名稱
#name:欄位名稱
注意:唯一索引對null不起作用,也就是欄位為null的話可以重複;
注意:唯一索引對" “不起作用,也就是欄位為” "的話不可以重複;
-- 刪除唯一索引
drop index uk_users_name;
新增 if EXISTS,語句可重複執行不報錯;
-- 刪除唯一索引
drop index if EXISTS uk_users_name;
3 建立、刪除唯一鍵約束
使用約束CONSTRAINT 建立不重複索引;和唯一索引效果一樣;
-- 建立唯一鍵約束
ALTER TABLE t_users ADD CONSTRAINT uk_users_name1 UNIQUE (NAME);
-- 刪除唯一鍵約束
alter table t_users drop constraint if EXISTS uk_users_name1;
刪除主鍵:若主鍵有自增應先取消自增
alter table t5 drop primary key;
alter table t5 drop index xxx;