mysql索引
概念
作用
所以我们创建所以要有依据
命令
创建一个表
普通索引
最基础索引,没有唯一性限制
修改表方式创建
创建表时,指定索引
唯一索引
与普通索引类似,但区别是唯一索引列的每个值都唯一。唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。
直接创建唯一索引
修改表方式创建
创建表的时候指定
主键索引
是一种特殊的唯一索引,必须指定为主键。一个表只能有一个主键,不允许有空值。 添加主键将自动创建主键索引。
创建表时候指定
CREATE TABLE 表名 ([...],PRIMARY KEY (列名));
例:
create table test3(id int(10) not null,name varchar(20) not null,primary key (id));
或
create table test3(id int(10) not null primary key,name varchar(20) not null);
show keys from test3\G;
修改表创建
ALTER TABLE 表名 ADD PRIMARY KEY (列名);
例:
alter table class add primary key(id);
show keys from class\G;
组合索引
单列索引和多列索引
可以是单列上创建的索引,也可以是在多列上创建的索引。需要满足最左原则,因为 select 语句的 where 条件是依次从左往右执行的,所以在使用 select 语句查询时 where 条件使用的字段顺序必须和组合索引中的排序一致,否则索引将不会生效。
全文索引FULLTEXT
直接创建索引
修改表方式创建
创建表的时候指定索引
使用全文索引查询
查看索引
删除索引
直接删除
修改表方式删除
删除主键索引