MySQL索引创建、删除、查看
主键索引
PRIMARY KEY索引仅是一个具有名称PRIMARY的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY,因为一个表中不可能具有两个同名的索引。
- ALTER TABLE 'tablename' ADD PRIMARY KEY("column");
普通索引
- 直接创建索引:
CREATE INDEX 'indexname' ON 'tablename'('column'('account')); - 修改表结构的方式创建索引:
ALTER TABLE 'tablename' ADD INDEX 'indexname'('column'('account')); - 创建表的时候创建索引:
CREATE TABLE 'tablename'(
INDEX 'indexname'('column'('account'))
);
唯一索引
唯一索引的列必须是唯一的,但是允许有null值。如果是组合索引,则列值的组合必须唯一。
- 创建唯一索引
CREATE UNIQUE INDEX 'indexname' ON 'tablename'('column'('account')); - 改变表结构
ALTER TABLE 'tablename' ADD UNIQUE 'indexname'('column'('account')); - 创建表的时候创建唯一索引:
CREATE TABLE 'tablename'(
UNIQUE 'indexname'('column'('account'))
);
全文索引
对text等文本字段建立索引。
- 创建全文索引
CREATE FULLTEXT INDEX 'indexname' ON 'tablename'('column'); - 改变表结构
ALTER TABLE person ADD FULLTEXT 'indexname'('column'); - 创建表的时候创建全文索引
CREATE TABLE 'tablename'(
FULLTEXT 'indexname'('column')
);
组合索引
组合索引是最左前缀。
- 创建组合索引
ALTER TABLE person ADD INDEX idx_lastname_firstname(lastname(10),firstname(10));
这样子相当于创建了两组组合索引:- -lastname
- -lastname,fistname
查看索引
- SHOW INDEX FROM 'tablename';
删除索引
- 删除索引:
DROP INDEX 'indexname' ON 'tablename'; - 改变表结构:
ALTER TABLE 'tablename' DROP INDEX 'indexname'; - 删除PRIMARY KEY索引
ALTER TABLE 'tablename' DROP PRIMARY KEY;