一、冗余和重复索引
在 MySQL 中允许在相同的列上创建多个索引。重复索引是指在相同列上按照相同的顺序创建的相同类型的索引。冗余索引和重复索引有些不同,例如创建了索引(A,B),在创建索引(A)就是冗余索引。下面的例子是重复索引:
create table test( id int not null primary key, A int not null, B int not null, UNIQUE(id), INDEX(id) ) ENGINE=InnoDB;
TIP:
- MySQL 需要单独维护重复索引和冗余索引;
- 优化器在优化查询时,也需要对每个索引进行过滤,也会影响性能;
- 表中的索引多,会影响对数据进行增删改的速度。