MYSQL中的主要索引类型
1.普通索引(NORMAL)
2.唯一索引(UNIQUE)
3.主键索引(PRIMARY)
4.组合索引
5.全文索引(FULLTEXT)
索引命名规范
主键索引:pk_字段名【强制】-pk为PRIMARY KEY缩写
唯一索引:uk_字段名-uk指的是UNIQUE KEY
普通索引:idx_字段名-idx指的是index
查询表中索引
show index from 表名;
show KEYS from 表名;
1.普通索引
·创建普通索引
CREATE INDEX 索引名 ON 表名(字段名);
ALTER TABLE 表名 ADD INDEX 索引名 ON 表名(字段名);
·修改普通索引名称
ALTER TABLE 表名 RENAME INDEX 旧索引名 TO 新索引名;
·删除普通索引
DROP INDEX 索引名 ON 表名;
2.唯一索引
·创建唯一索引
CREATE UNIQUE INDEX 索引名 ON 表名;
ALTER TABLE 表名 ADD UNIQUE INDEX 索引名;
·修改唯一索引名称
ALTER TABLE 表名 RENAME INDEX 旧索引名 TO 新索引名;
·删除唯一索引
DROP INDEX 索引名 ON 表名;
3.主键索引
·字段不能为null,不能重复,只能创建一个主键索引
ALTER TABLE 表名 ADD PRIMARY KEY(字段名);
4.组合索引
·创建组合索引
CREATE INDEX 索引名 ON 表名(字段1,字段2...);
5.全文索引
·创建全文索引
ALTER TABLE `table_name` ADD FULLTEXT 索引名 ( `column` );
·删除全文索引
DROP INDEX 索引名 ON 表名;
6.前缀索引
·mysql中,前缀索引(Prefix Index)指的是对列值的开头一部分进行索引,使用前缀索引可以只对列值的一部分创建索引,并不是对整个列值进行索引。举个例子,假设有一个包含URL的列,但是你只对URL的一部分进行查询,这时可以创建一个前缀索引,而不是对整个列进行索引。
CREATE INDEX 索引名 ON 表名(字段名(长度));
7.外键索引
·使两表产生关联,创建外键索引的同时,会创建外键;创建外键的同时,也会创建外键索引
·创建索引
Alter table 表名 ADD CONSTRAINT 你为外键起的名字 FOREIGN KEY(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);
·删除外键
Alter table 表名 Drop foreign key 你为外键起的名字;
·删除外键索引
Alter table 表名 Drop key 你为外键起的名字;