テーブルにカラムやインデックスを追加するといった、いわゆるスキーマの変更を行うときは、通常、サービスをメンテナンスに入れてから作業をしなくてはいけません。理由は、ALTER TABLE実行中は共有ロックがかかってしまうため、更新クエリを実行しても即座に完了しなくなるからです。そうすると、アプリからみればおそらく更新クエリを発行するページではHTTPタイムアウトになりますし、参照だけのページでもかなり遅くなることでしょう。 サービスの改良をすると必ずスキーマ変更が必要になりますが、しかしサービスは可能な限り24時間365日提供したいもの。Percona Toolkitの pt-online-schema-change はそんな悩みを払拭し、サービスを停止すること無くスキーマの変更を可能にしてくれます。 概要と仕組み Percona Toolkitは全てPerlスクリプトなので、/usr/bi