本文涉及:MySQL的索引类型及区别和如何建立、删除、查看索引
索引类型
MySQL中的的索引分为单列索引和组合索引
单列索引:主键索引,唯一索引,普通索引都可以作为一个单列索引,单列索引只包含一个列,一个表可以有多个单列索引
组合索引:一个组合索引包含两个或两个以上的列
当这样一条语句select * from user where id=1 and name=‘张三’ and age=18 执行时,如果 id、name、age三个字段使用的是组合索引则该组合索引可以被使用、而如果是三个字段分别使用单列索引则只使用其中一个索引
普通索引
create index title_index ON book(title(100));
alter table book ADD index title_index(title);
如果是char、varchar类型,length可以小于字段实际长度。如果是blob和text类型,必须指定 length
唯一索引
与普通不同的是唯一索引列的值必须唯一,但允许有空值,不过空值也只能是存在一个
create unique index title_index ON book(title(100));
alter table book ADD unique index title_index(title);
主键索引
表中如果是单主键的话,那这个主键会被系统默认建为索引
表中如果是复合主键的话,那系统会遵循左对齐原则,即如复合主键 a 和 b字段和c字段..., 默认建的主键索引是abc即主键全有,把所有主键全部建立在一个单独的主键索引中
组合索引
create index title_author_index ON book(title(100),author(80));
alter table book ADD index title_author_index(title,author);
删除索引
drop index title_index ON book;
显示索引
show index from book;
不得不看
万水千山总是情,点个 “在看” 行不行!!!