二十六、冗余和重复索引

575 阅读1分钟

一、冗余和重复索引

在 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:

  1. MySQL 需要单独维护重复索引和冗余索引;
  2. 优化器在优化查询时,也需要对每个索引进行过滤,也会影响性能;
  3. 表中的索引多,会影响对数据进行增删改的速度。