コマンド
pt-duplicate-key-checker [ オプション ] [ DSN ]
【必須項目】
- ・ [ DSN ] : D=データベース名, h=ホスト名
- ・ [ オプション ] : -u ユーザ名, -p パスワード
目的
テーブルのインデックスや外部キーの重複チェックをします
指定されたデータベース上のテーブルから重複しているインデックスや外部キーを検索し、それを削除するSQL文を表示します
設定ファイル
上記の必須項目を、設定ファイルにまとめておきます
# touch /etc/percona-toolkit/pt-duplicate-key-checker.conf
# vi /etc/percona-toolkit/pt-duplicate-key-checker.conf
・設定ファイルの作成
# touch /etc/percona-toolkit/pt-duplicate-key-checker.conf
・設定ファイルの編集
# vi /etc/percona-toolkit/pt-duplicate-key-checker.conf
# config for pt-duplicate-key-checker
user=ユーザ名
password=パスワード
h=ホスト名
d=データベース名
シナリオ
以下のコマンドで、”employees”データベースの”employees”テーブルに、”emp_no_emp”をインデックスとして登録します。
mysql> CREATE INDEX emp_no_emp ON employees(emp_no);
“emp_no”カラムはプライマリーキーであるため、インデックスとして機能します
そのため、”emp_no_emp”は重複したインデックスとして認識されます
以下のコマンドで、重複したインデックスをチェックします
# pt-duplicate-key-checker
結果
“idx_id”が重複したインデックスとして検知されました
さらに、赤丸の部分に重複しているインデックスを削除する ALTER文が記述されています
良い点
インデックス及び、外部キーに重複がないかを容易に確認する事ができます