製品

Percona

pt-duplicate-key-checker

コマンド

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文が記述されています
duplicate-key-checker

良い点

インデックス及び、外部キーに重複がないかを容易に確認する事ができます