テーブルにカラムやインデックスを追加するといった、いわゆるスキーマの変更を行うときは、通常、サービスをメンテナンスに入れてから作業をしなくてはいけません。理由は、ALTER TABLE実行中は共有ロックがかかってしまうため、更新クエリを実行しても即座に完了しなくなるからです。そうすると、アプリからみればおそらく更新クエリを発行するページではHTTPタイムアウトになりますし、参照だけのページでもかなり遅くなることでしょう。 サービスの改良をすると必ずスキーマ変更が必要になりますが、しかしサービスは可能な限り24時間365日提供したいもの。Percona Toolkitの pt-online-schema-change はそんな悩みを払拭し、サービスを停止すること無くスキーマの変更を可能にしてくれます。 概要と仕組み Percona Toolkitは全てPerlスクリプトなので、/usr/bi
![Percona Toolkit pt-online-schema-change でサービス無停止スキーマ変更 | 外道父の匠](https://cdn-ak-scissors.b.st-hatena.com/image/square/35e39cda8b3814590c09261f4b5f5c3899facf5b/height=288;version=1;width=512/https%3A%2F%2Fblog.father.gedow.net%2Fwp-content%2Fuploads%2F2015%2F11%2Fthumbnail-okinawa-2013.jpg)