2013年3月27日水曜日

pt-duplicate-key-checkerが快適

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 件のコメント :

コメントを投稿