1. 建立索引
1.1 使用Alter建立索引
- 1 新增主鍵索引
特點:資料列不允許重複,不能為null,一張表只能有一個主鍵;Mysql主動將該欄位進行排序
ALTER TABLE 表名 ADD Primary key (col);
- 新增唯一索引
特點:索引列是唯一的,可以null;Mysql主動將該欄位進行排序
ALTER TABLE 表名 ADD unique <索引名> (col1, col2, ...col3);
- 新增普通索引
特點:新增普通索引, 索引值不唯一,可為null
Alter table 表名 ADD index <索引名> (col1, col2, ...,);
- 新增全文索引
特點:只能在文字型別CHAR,VARCHAR, TEXT型別欄位上建立全文索引;
ALTER TABLE 表名 ADD Fulltext <索引名> (col)
- 新增多列索引
特點:多列是唯一的
ALTER TABLE 表名 ADD UNIQUE (col1, col2, ..., )
1.2 使用Create建立索引
語法:create index 索引名 on 表名(欄位)
- 新增唯一索引
create index 索引名 on table 表名(col1, col2, ..., )
- 新增普通索引
create unique index 索引名 on table 表名(col1, col2, ..., )
1.3 兩種建立索引方式的區別
-
Alter可以省略索引名。如果省略索引名,資料庫會預設根據第一個索引列賦予一個名稱;Create必須指定索引名稱。
-
Create不能用於建立Primary key索引;
-
Alter允許一條語句同時建立多個索引;Create一次只能建立一個索引
ALTER TABLE 表名 ADD Primary key (id), ADD index <索引名> (col1, col2, ...,)
1.4 索引執行效率分析
主鍵索引 > 唯一性索引 > 普通索引
2 刪除索引
- 第一種方式
drop index 索引名 on 表名;
- 第二種方式
Alter table 表名 drop index 索引名;
- 第三種方式
Alter table 表名 drop primary key
分析:
- 第三種方式只在刪除primary key中使用。因一個表只能存在一個primary key索引,則不需要指定索引名;
- 對於第三種方式,若沒有建立primary key索引,但表中具有一個或多個unique索引,則預設刪除第一個unique索引;
- 若刪除表中的某列,索引會受到影響。對於多列組合的索引,如果刪除其中的某一列,則該列會從對應的索引中被刪除(刪除列,不刪除索引);多刪除組成索引的所有列,則索引將被刪除(不僅刪除列,還刪除索引)。