1.PT工具包之-pt-duplicate-key-checker
1.功能介绍
功能为从mysql 表中找出重复的索引和外键,这个工具会将重复的索引和外键都列出来,并生成
了删除重复索引的语句
pt-duplicate-key-checker
2.全库检查test数据库的重复索引
pt-duplicate-key-checker --host=192.168.1.51 --user=root --password=rootroot --databases=test
[root@mysql1 test]# pt-duplicate-key-checker --host=192.168.1.51 --user=root --password=rootroot --databases=test
# ########################################################################
# test.t2
# ########################################################################
# idx_id is a left-prefix of idx_id_name
# Key definitions:
# KEY `idx_id` (`id`),
# KEY `idx_id_name` (`id`,`name`)
# Column types:
# `id` int(11) default null
# `name` varchar(100) default null
# To remove this duplicate index, execute:
ALTER TABLE `test`.`t2` DROP INDEX `idx_id`;
# ########################################################################
# Summary of indexes
# ########################################################################
# Size Duplicate Indexes 15
# Total Duplicate Indexes 1
# Total Indexes 2
根据结果可以看到:idx_id 是 idx_id_name 的左前缀。并给出了两个索引的列信息,建议删除重复的索引,
且给出了删除索引的语句: ALTER TABLE `test`.`t2` DROP INDEX `idx_id`;
3.针对单表的检查
[root@mysql1 test]# pt-duplicate-key-checker --host=192.168.1.51 --user=root --password=rootroot --databases=test --table=t2
# ########################################################################
# test.t2
# ########################################################################
# idx_id is a left-prefix of idx_id_name
# Key definitions:
# KEY `idx_id` (`id`),
# KEY `idx_id_name` (`id`,`name`)
# Column types:
# `id` int(11) default null
# `name` varchar(100) default null
# To remove this duplicate index, execute:
ALTER TABLE `test`.`t2` DROP INDEX `idx_id`;
# ########################################################################
# Summary of indexes
# ########################################################################
# Size Duplicate Indexes 15
# Total Duplicate Indexes 1
# Total Indexes 2
4.总结
pt-duplicate-key-checker 是一个非常实用的工具,利用它可以检查冗余索引并生成相关的删除语句。避免了人工检查的复杂性。