索引的不合理会影响 insert
和 update
的效率
1. 重复的索引
指相同的列以相同的顺序建立同类型的索引. (如设置 id 上的主键索引 , 则不需要设置唯一索引 )
1 2 3 4 5 6
| create table test ( id int not null primary key, name varchar(50) not null , title varchar(50) not null, unique(id) //这就是重复的索引 )engine=innodb;
|
2. 冗余索引
指多个索引的前缀相同或是在联合索引中包含了一个主键索引 , 这个索引就是冗余的索引.
1 2 3 4 5 6
| create table test ( id int not null primary key, name varchar(50) not null , title varchar(50) not null, key(name,id) //这就是冗余的索引 )engine=innodb;
|
- 查询索引是否重复或冗余的工具
pt-duplicate-key-checker \
1 . 使用1 2 3 4
| pt-duplicate-key-checker \ -uroot \ -p '密码' -h 127.0.0.1
|
在执行该条语句后 , 会检测数某个库的某个表的某些字段 , 同时给出了可以直接执行的SQL语句 .