【WordPress】DBが重い原因がわかった

注意:以下のようにタグを削除しますと、タグのフィード購読などのリンクも切れますので、フィード購読されている場合はアクセスが確実に減ります。また購読者の方を困惑させることにもなりますので、ご注意下さい。

キャッシュ導入済みでも重い、という場合はタグを確認しましょう。

2週間ほど前から、WordPressの予約投稿が失敗し続け、そして先週から、いよいよ「データベースに接続出来ません」というメッセージが表示されるほどに、WordPressが重くなりました。

レンタルサーバーのプランで、専用サーバーで運用しているのですが、CPUがATOMという最も低スペックのものだから、というのもありますが、ここ数日はDBに接続さえもしなり、とほほです。

WordPressの予約投稿が失敗、そこで気付く

サーバーを起動させるほど、WordPressが重くなりました。

WP SuperCacheは入れているのですが、かなり前から重さは感じていました。しかし、ここ数日で「データベースに接続出来ません」と出てしまうほどの重さ。さらに、サーバーのプロセス数が頻繁に上昇し、ついには再起動をさせるハメに。これほどのことは初めてです。

すでに、キャッシュなどの対応はとっているため、困っていました。予約投稿が失敗するだけでなく、通常の投稿さえも支障をきたし始め、更には同一サーバーで稼働している他のWordPressも、動作が重くなる、DB接続エラーが出るなど、被害が拡大していました。

Wp_SuperCache導入済でも重いならタグをチェック

結論から言いますと、タグでした。WordPressは、タグやカテゴリーなどの分類情報を wp_terms、wp_terms_relationship、
wp_terms_taxonomyに持ちます。それらは1対多など複雑に絡みます。

そして、私のブログでは、「他の人はこれを読んでます」「人気記事」などを表示させていました。おそらくこれらも複雑に絡み合い、相当のボリュームになっていたと思われます。

・1600ほどあったタグを全て削除(管理画面から手作業)
・レコード数86939が、20880に!
・ソーシャル関連等、外部接続のプラグインも思い切って削除!

以上のことをしましたら、とたんに軽くなりました。

WP Super Cacheの設定も確認

ついでに、WP Super Cacheも最新版に更新(日本語化します)。以下の設定をしました。

・(推奨)と書かれているものは全てチェック。
・プリロード「全ての投稿」

あと、DBの最適化・バックアップとして、以下のプラグインも入れました。これでやっと落ち着いた感じです。ツイッターやGoogle+でコメント下さった方々に感謝致します。ありがとうございました。

WordPress › WP-Optimize « WordPress Plugins
WordPress › WP-DBManager « WordPress Plugins
※こちらだけでもDBの最適化は出来るのですが、上記は投稿リビジョンも消してくれる等してくれるため、いちおう。

参考URL

WordPressのサーバー移転メモ:バックアップ編 | コリス
WordPressが重くなる理由わかった〜結局さくらサーバ移転へ | 高橋文樹.com
データベース構造 – WordPress Codex 日本語版
WordPress のカテゴリ管理画面でカテゴリ ID の隣にterm_taxonomy_id を表示する | MOMENTS
Na-ga.net » Blog Archive » WordPress のチューニングポイントを探す – Linux を中心とした忘却メモ
 

WordPress 高速化&スマート運用必携ガイド
超新刊です。

WordPress 高速化&スマート運用必携ガイド

posted with amazlet at 12.02.27
こもりまさあき 岡本渉
MdN
売り上げランキング: 29791