1.pt-duplicate-key-checker
我们首先来看帮助文档:
pt-duplicate-key-checker --help
作用:检查MySQL表是否重复或冗余索引和外键。
我下载了官方文档:
全英文的,这里再次体现英文的重要性,如果英文不好,只能看国人翻译过的资料,
就会出现问题,我的英语就是渣。结合这百度翻译读一下吧。
实际操作:
pt-duplicate-key-checker -uroot -p****** -d world -S /tmp/mysql.sock
名词解释 :
- u 用户名
-p 用户名密码
-d 数据库
-S sock方式登陆,指定sock文件位置
查询结果:
# ########################################################################
# world.city
# ########################################################################
# CountryCode is a left-prefix of idx_c_p
# Key definitions:
# KEY `CountryCode` (`CountryCode`),
# KEY `idx_c_p` (`CountryCode`,`Population`)
# Column types:
# `countrycode` char(3) not null default ''
# `population` int(11) not null default '0'
# To remove this duplicate index, execute:
ALTER TABLE `world`.`city` DROP INDEX `CountryCode`;
# ########################################################################
# world.countrylanguage
# ########################################################################
# CountryCode is a left-prefix of PRIMARY
# Key definitions:
# KEY `CountryCode` (`CountryCode`)
# PRIMARY KEY (`CountryCode`,`Language`),
# Column types:
# `countrycode` char(3) not null default ''
# `language` char(30) not null default ''
# To remove this duplicate index, execute:
ALTER TABLE `world`.`countrylanguage` DROP INDEX `CountryCode`;
# ########################################################################
# Summary of indexes
# ########################################################################
# Size Duplicate Indexes 60360
# Total Duplicate Indexes 2
# Total Indexes 10
可以看出检测到两个重复索引,并给出了删除建议。
在数据库中查询:
可以看到,在两个表中确实存在两个重复索引。
感叹,这工具真强大。今天先做这个功能,未完待续.
网友评论