phpMyAdminで困ったらAdminerを使え! その1

カテゴリ: WEB、WEBシステム関連 / 公開日: 2013年6月29日(土曜)20:32 / 投稿者: Tom Goodsun

phpMyAdmin。ウェブベースのデータベースアドミニストレーションツールで非常に有名かつ王道なツールだ。
最近仕事で、データ調査を他の人に依頼しているのだが、非常に困ったことになっている。
そこで今回紹介したいのがAdminerというデータベースアドミニストレーションツールだ。
正直、このツールには感動すら覚える!

経緯

俺:「phpMyAdminで何かするとDBサーバーの負荷ががくっと上がるので控えるようにしてください。負荷の少ない時間帯とかにしてくれるとありがたいんですが・・・」
調査担当:「でもそれだと仕事が前に進まないよ」
俺:「んー。phpMyAdminのどこが問題かはわかってるんですが、改造が必要なんですよねぇ・・・」
調査担当:「やりたいことは大体5~10分で終わるんだよ。データ検索するだけで数十分かかるじゃん。」
俺:「んー・・・何とかします・・・」

はっきり言ってすごく困った。

結局のところphpMyAdminは高機能なのだが、それゆえに重たい。
特に大規模なシステムやデータ件数が数百から数億になるようなシステムでは1アクションに数十分かかる上にただでさえ高負荷のシステムで更に負荷をかけてくる。
ツールを使用する以前にサービスに影響しかねない。これは非常に問題だ。

phpMyAdminが重い理由

すでに既知ではあったようだ。
phpMyAdminにログインしたときにデータベースの一覧が表示される。
そこから任意のデータベースを選択するが、その際にphpMyAdminは裏で色々やっているのだが、それが重たいようだ。
設定ファイルをいじっても劇的な改善は見られない。

重たいのは「SHOW TABLE STATUS」とコマンドを前テーブルに対し実行している。
これだけではないが、他にも重たい処理を色々しているらしい。

上記サイトで色々改善策や改造方法が記述されているが、あまりしたくないし、バージョンアップできなくなってしまう。
とにかくこれらを解決出来れば状況は改善しそうだ。

ウェブベースのツール探し

そもそも世の中にはウェブベースのデータベースアドミニストレーションツールはいっぱいある。
たとえば、以下のようなやつだ。

だが、phpMyAdminと同じく重かったり、そもそも操作性がSQLを記述することに特化していたりするため(インターフェースは気に入っている)、SQLという非常にエンジニアっぽいことを知らないと使えないのである。
phpMyAdminとかだったら、検索条件をフォームですることができるので、SQLを知らなくても条件の組み立て方を知っていれば簡単に使える。

ちなみにセキュリティの関係でDBクライアントでの接続は出来ないというサーバーだったため、(あまる有力な解決策ではないが)MySQL Workbenchなどのツールも使えない。

続く