Percona Toolkitのひとつpt-duplicate-key-checker。
名前の通り、重複したインデックスをチェックしてくれる。
$ pt-duplicate-key-checker S=/usr/mysql/5.5.30/data/mysql.sock,u=tpcc,p=xxxx --database=tpcc
# ########################################################################
# tpcc.stock
# ########################################################################
# s_w_id is a left-prefix of PRIMARY
# Key definitions:
# KEY `s_w_id` (`s_w_id`),
# PRIMARY KEY (`s_w_id`,`s_i_id`),
# Column types:
# `s_w_id` smallint(6) not null
# `s_i_id` int(11) not null
# To remove this duplicate index, execute:
ALTER TABLE `tpcc`.`stock` DROP INDEX `s_w_id`;
# ########################################################################
# Summary of indexes
# ########################################################################
# Size Duplicate Indexes 2
# Total Duplicate Indexes 1
# Total Indexes 25
⇒わざと作った重複インデックスを検出させてみる。
複合キーの左側に含まれてる不要なインデックスをリストして
イラナイキーをDROPするためのALTER TABLEステートメントも一緒に出してくれる。
DSNの指定の部分は、
S=ソケットファイル,
h=ホスト名,
u=ユーザー名,
p=パスワード,
P=ポート
各パラメータはコンマ区切り。
--databases 対象DB1,対象DB2
これも複数指定するときはコンマ区切り。
対象を指定しない場合は全DBが対象。
その他諸々は本家のドキュメントを…って、ドキュメントはまだ2.2になってないのね。
http://www.percona.com/doc/percona-toolkit/2.1/pt-duplicate-key-checker.html
これで重複インデックスを一網打尽にしたい。
0 件のコメント :
コメントを投稿