一:pt-duplicate-key-checker 使用
语法
Usage: pt-duplicate-key-checker [OPTIONS] [DSN] Options: --all-structs Compare indexes with different structs (BTREE, HASH,etc) --ask-pass Prompt for a password when connecting to MySQL --charset=s -A Default character set --[no]clustered PK columns appended to secondary key is duplicate ( default yes) --config=A Read this comma-separated list of config files; if specified, this must be the first option on the command line --databases=h -d Check only this comma-separated list of databases --defaults-file=s -F Only read mysql options from the given file --engines=h -e Check only tables whose storage engine is in this comma- separated list --help Show help and exit --host=s -h Connect to host --ignore-databases=H Ignore this comma-separated list of databases --ignore-engines=H Ignore this comma-separated list of storage engines --ignore-order Ignore index order so KEY(a,b) duplicates KEY(b,a) --ignore-tables=H Ignore this comma-separated list of tables --key-types=s Check for duplicate f=foreign keys, k=keys or fk=both ( default fk) --password=s -p Password to use when connecting --pid=s Create the given PID file --port=i -P Port number to use for connection --set-vars=A Set the MySQL variables in this comma-separated list of variable=value pairs --socket=s -S Socket file to use for connection --[no]sql Print DROP KEY statement for each duplicate key ( default yes) --[no]summary Print summary of indexes at end of output (default yes) --tables=h -t Check only this comma-separated list of tables --user=s -u User for login if not current user --verbose -v Output all keys and/or foreign keys found, not just redundant ones --version Show version and exit --[no]version-check Check for the latest version of Percona Toolkit, MySQL, and other programs (default yes) Option types: s=string, i=integer, f=float, h/H/a/A=comma-separated list, d=DSN, z=size, m=time Rules: This tool accepts additional command-line arguments. Refer to the SYNOPSIS and usage information for details. DSN syntax is key=value[,key=value...] Allowable DSN keys: KEY COPY MEANING === ==== ============================================= A yes Default character set D yes Default database F yes Only read default options from the given file P yes Port number to use for connection S yes Socket file to use for connection h yes Connect to host p yes Password to use when connecting u yes User for login if not current user If the DSN is a bareword, the word is treated as the 'h' key. Options and values after processing arguments: --all-structs FALSE --ask-pass FALSE --charset (No value) --clustered TRUE --config /etc/percona-toolkit/percona-toolkit.conf,/etc/percona-toolkit/pt-duplicate-key-checker.conf,/root/.percona-toolkit.conf,/root/.pt-duplicate-key-checker.conf --databases (No value) --defaults-file (No value) --engines (No value) --help TRUE --host (No value) --ignore-databases --ignore-engines --ignore-order FALSE --ignore-tables --key-types fk --password (No value) --pid (No value) --port (No value) --set-vars --socket (No value) --sql TRUE --summary TRUE --tables (No value) --user (No value) --verbose FALSE --version FALSE --version-check TRUE
参数说明:加粗的为常用的
$ pt-duplicate-key-checker --user=root --password=passwd --host=10.10.0.254 --databases=igp2 --tables=user_medals # ######################################################################## # igp2.user_medals # ######################################################################## # user_id is a left-prefix of index_user_id_medal_id # Key definitions: # KEY `user_id` (`user_id`) USING BTREE # UNIQUE KEY `index_user_id_medal_id` (`user_id`,`medal_id`), # Column types: # `user_id` int(11) not null comment '用户id' # `medal_id` int(11) not null comment '对应user_medal_cert的勋章id' # To remove this duplicate index, execute: ALTER TABLE `igp2`.`user_medals` DROP INDEX `user_id`; # ######################################################################## # Summary of indexes # ######################################################################## # Size Duplicate Indexes 1128 # Total Duplicate Indexes 1 # Total Indexes 3
可以看到列出了重复的索引,并给了如何优化的sql
《本文》有 0 条评论