MySQL  - 讨论区

标题:使用pt-duplicate-key-checker工具查找重复的索引

2013年12月22日 星期日 20:29

pt-duplicate-key-checker是Percona Toolkit中的一员,它通过扫描数据库中数据表的表结构定义,找出重复的索引,然后生成DROP INDEX的SQL语句。

使用实例如下:

pt-duplicate-key-checker -S /data/mysql/3306/mysql.sock

截取输出的一部分:

# id is a duplicate of PRIMARY
# Key definitions:
#   KEY `id` (`id`) USING BTREE
#   PRIMARY KEY (`id`),
# Column types:
#	  `id` int(11) not null auto_increment
# To remove this duplicate index, execute:
ALTER TABLE `okaybuy`.`p_supplier_adjust_apply` DROP INDEX `id`;

一般来说,所谓“重复的索引”,有以下几种情况:

1,索引列完全相同,只是索引的名字不同。例如:

key name_1(name),

key name_2(name)

2,多列索引前缀包含。例如:

key index_1(name,email,id),

key index_2(name)

3,一般索引与主键重复。例如:

primary key(id),

key  index_1(id)

4,一般索引与Unique索引重复。例如:

unique key(id),

primary key(id),

key index_1(id)

重复的索引对于查询速度没有改进,但对于写入速度会有严重影响,并且还占用磁盘空间,应当尽量避免。

参考文档:

http://www.mysqlperformanceblog.com/2012/06/20/find-and-remove-duplicate-indexes/

http://www.percona.com/doc/percona-toolkit/2.2/pt-duplicate-key-checker.html

http://www.percona.com/doc/percona-toolkit/2.2/

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号