索引:
唯一索引:
索引值唯一,且允许最多一个值为空
单列索引 / 普通索引 / 单值索引:
一个索引只包含一列,一个表可以有多个单值索引
复合索引:
一个索引包含多个列
主键索引
设立主键时会自动创建索引,索引值不可为空。 innodb为聚簇索引
全文索引
在定义索引的列上支持全文查找,允许在这些索引列中插入重复值和空值。可在char varchar text类型的列上创建。MySQL只有MyISAM引擎支持全文索引。
索引的利弊
1优点:大大加快查询速度
2缺点:i 维护索引需要耗费数据库资源
ii 索引需要占用磁盘空间
iii 当对表的数据进行增删改查时,需要维护索引,导致浪费一些时间
索引的操作
#建表时创建普通索引
create table t_user(id varchar(20) primary key,name varchar(20),key(name));
#建表后创建普通索引
create index name_index on t_user(name);
#删除索引
drop index name_index on t_user
#显示索引
show index from t_user
#建表时创建唯一索引
create table t_user (
id varchar(10) PRIMARY key,
name varchar(2) ,unique(name)
);
#建表后创建唯一索引
create unique index name_index on t_user(name);
#建表时创建复合索引
create table t_user (
id VARCHAR(3) primary key,
name varchar(3),
age int(3),
sex varchar(1),
key(name,age,sex)
);
#建表后创建复合索引
create index name_age_sex_index on t_user(name,age,sex)