一、冗余和重复索引
在 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 需要单独维护重复索引和冗余索引;
- 优化器在优化查询时,也需要对每个索引进行过滤,也会影响性能;
- 表中的索引多,会影响对数据进行增删改的速度。