1自动创建索引:
当在表中定义一个primary key 或者unique时,MySQL数据库会自动创建一个对应的主键索引或者是唯一索引。
2手动创建索引
在创建表的时候创建索引,也可以给已经有的表创建索引
编辑切换为居中
添加图片注释,不超过 140 字(可选)
索引的类型
1普通索引:没有任何限制,可以是任何数据类型,可以为空,可以有重复的值。
2唯一索引:就是在创建表的时候,定义unique ,提高查询的效率,并且保证插入的数据在该字段下是唯一的。
可以有空值,就是不能有重复值。
3主键索引:直接在创建表的字段的时候就自动创建了,可以有重复值,不允许有空值。
4全文索引:适合用于检索大量文本,比如 char,varchar,text
5空间索引:设置为空间索引字段的数据类型必须是空间数据类型,如 GEOMETRY、POINT、
LINESTRING、POLYGON,并且该字段必须设置为 NOT NULL。目前 InnoDB 和 MyISAM
存储引擎均支持空间检索。
6复合索引:创建在多个字段的索引,只有在定义时的第一个字段被查询,才能启动符合索引,第二个字段查询时不能启动符合索引。这是因为使用复合索引时遵循“最左前缀”的原因。例如:
当索引字段为(id, name)时,只有查询条件中适用了 id 字段,该索引才会被使用;如果查
询条件中只有 name 字段是不会使用该索引的。
#自动创建索引
create table stu(
id int(10) primary key,
wname varchar(10) unique
);
#查看是否自动创建了索引
show index from stu;
#在创建表的时候,创建普通索引
create table stu1(
id int(10),
ename varchar(10),
index(id)
)
#在创建表的时候创建唯一索引
create table stu2(
id int(10),
ename varchar(10),
unique (id)
)
show index from stu2;