索引
**含义:**相当于一个目录,能更快速的让你找到你想要的东西。比如字典,我们可以通过拼音,笔画,偏旁等排序的目录(索引)快速找到需要的字。索引又分单列索引和组合索引。
单列索引:一个索引就只包含单列,一个表可以有多个单列索引,但着不是组合索引
组合索引:一个索引有多列
**索引的好处:**使查询更加便捷
**索引的坏处:**当使用索引过多,就会造成滥用,同时降低跟新表的速度,比如对表进行insert ,update,delete,因为跟新表时,数据库不仅跟新原始表还要跟新索引表
其实索引也是一张表,该表保存主键和索引字段,并指向实体表记录
使用的时候
1.通常在where子句条件
2.创建索引:
普通索引
方法1:
create index indexname on t1(列1(length))
如果是char和varchar类型,length 可以小于字段实际长度,如果blob和text类型,必须制定length
方法二:修改表结构
alter table t1 add INDEX(列1) #给列1 添加索引
方法三:创建表是指定
create table t1(
id int not null,
score int not null
INDEX indexname(列1(length))
);
删除索引:
delete INDEX indexname on t1
唯一索引:
跟普通索引相似,不同就是:索引列一定要唯一,但允许空值。如果组合索引,则列值的组合必须唯一
创建索引:
create unique index indexname on t1(列1(length))
修改表结构
alter table t1 add unique indexname (列1(length))
创建表
create table t1(
id int not null,
score int not null
UNIQUE INDEX indexname(列1(length))
);
显示索引信息
show index from t1;