MySQLの最適化でWordPressのアクセス不能状態を復旧

XREAでWordpressのサイトをいくつか運営していますが、そのうちの一つがある日突然レスポンスを全く返さなくなってしまいました。

同じサーバで運用している他サイトは正常に見えてるし、管理画面のphpMyAdminからDBも動いているようだし、これはWordpress周りの異常かなと思って調べたところ、MySQLのオーバヘッドが溜まるとアクセスできなくなるという結構事例も多くある現象が見つかりました。

MySQLの最適化を試したところ、すんなりサイトは復旧しました。

というわけで、その時の最適化作業備忘録です。

DBの最適化

XREAのWeb管理画面からphpMyAdminにアクセスします。

DBのテーブル一覧を開くと、オーバーヘッドができているテーブルが見つかります。

SQLタブを開き、オーバーヘッドがあるテーブルに対して最適化クエリを実行します。

[sql]
optimize tables `wp_options`, `wp_postmeta`
[/sql]

オーバーヘッドがクリアされます。

最適化スクリプトをcronに設定

手動で最適化すれば暫定的に解決しますが、しばらくしてオーバーヘッドが溜まるとまた同じ事象が繰り返されます。

そこで、XREAのcronにDB最適化を実行するスクリプトを仕込みます。

・mysqlcheck.sh
[shell]
#!/bin/sh
/usr/local/mysql/bin/mysqlcheck -o -r –databases [DB名] -u[ユーザ名] -p[パスワード]
exit
[/shell]

mysqlcheckコマンドの-oオプションは最適化、-rは修復です。

このファイルを公開ディレクトリのpublic_htmlから外にUPして、Web管理画面のcronジョブ設定からスクリプトを実行するよう設定します。(私はとりあえず様子見で毎時実行させてみました。)

これで手動メンテナンスも不要となります。

それにしても同じサーバ内でWordpressを使ってる他のサイトはオーバヘッドが溜まってもアクセスできるのに対して、あるサイトだけがまたオーバヘッドができるとアクセス不能になってしまう原因は分からず。

実践ハイパフォーマンスMySQL 第3版

実践ハイパフォーマンスMySQL 第3版

Baron Schwartz, Peter Zaitsev, Vadim Tkachenko
5,280円(09/18 22:43時点)
発売日: 2013/11/25
Amazonの情報を掲載しています

この記事を書いた人

ko31

岩手県出身、群馬県在住のフリーランスWeb系エンジニアです。
Webシステム・アプリ、Webサービス、WordPress開発等を雑多にこなしています。バンカラ応援好きの振り飛車党。
PHP / WordPress / 高校野球 / 将棋 / WordPress / ブログ / 食べること / 二児の父親

>>もっと詳しいプロフィールはこちら

お仕事のご相談・お問い合わせ

Gosign(ゴーサイン)という屋号でフリーランスの Web エンジニアとして活動しています。
当ブログでの掲載内容はもちろん、Web サイト制作や Web アプリケーション開発などのご相談・ご質問がありましたが、お気軽にお問い合わせください!

合わせて読みたい記事