索引

lucsa發表於2024-03-21

索引是什麼?

索引是對資料庫表中一列或多列的值進行排序的一種結構。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;

相關文章