WordPressでDBサイズを圧迫している一番の原因はAkismetだった・・・

一年半もブログ書いてきたら、次第にDataBaseサイズも重くなっていくものです。
このブログで使用しているサーバーのDBサイズは100MB以下推奨なのですが、現在調べてみたら28MBとなっていました。
まだ大丈夫といえば大丈夫ですが、たまにはメンテしてみようかと思って詳細をみてみることにしました。

最近度重なるアップデートで、プラグインWP-Optimizeがどのテーブルが重いのか一覧表示してくれるようになって非常に助かりました。
※DBの操作をする際は事前にバックアップとりましょう。

そもそも投稿に使用しているwp_postsは3MBしか容量占めてないので、100MBまでは全然余裕があるのに、他のTableがやたらと大きくなっていました。

とりあえず、結果からするとwp_commnetmetaというテーブルが異常に重くなっており、トータル28MBのサイズのうち、これで15MBも食っていました。(これだけで投稿の5倍!)
あと、SlimStatsとかPopularPostの残骸とか、今はもう使っていないアクセス解析系プラグインのログもそこそこたまっていました。

Stats系はさっさとテーブルごと削除(drop)してしまえば簡単ですが、wp_commentmetaはデフォルトで用意されているWordpressのテーブルなので、ちょっと慎重にならないといけません。

こちらでわかりやすく解説してくれていました。
【WordPressのデータベース構造の中にある「wp_commentmeta」には、何が入っているのか】ブログをこれまで運営していて、気になったので軽く調べました

この中で、身に覚えありそうなのが、WordpressにデフォルトでついてくるAkismetプラグインです。
おかげさまでコメントスパムからはものすごく守ってくれているのですが、問題はそのログが蓄積され続けていることです。

設定で「一ヶ月以上前の投稿につけられたスパムを自動削除する」にチェックいれているし、定期的にWP-Optimizeで最適化しているので、コメントのスパムには何も残っていない状態なのに、DBにはログが残り続けているのです。

Akismetを思いきって一度削除してから再インストールしてみましたが、結果DBには残り続けました。

プラグインって削除のタイミングでDBの中までクリアしてくれるものとしてくれないものとがあるんですよね。
まぁ下手に削除されて他に影響されても困るのですが・・・

何かいい方法がないかと調べてみたらありました。すばらしい。
How to Clean up Comment Meta in WordPress Database

一度Select文で確認はした上で、以下のコードでDeleteしました。(DB操作は自己責任で)

DELETE FROM wp_commentmeta WHERE meta_key
LIKE "%akismet%"

今回の削除で、最終的にDBサイズは7MBまで減りました。
それにしてもAkismetはデフォルトで導入するプラグインなのに、こんな落とし穴があったとは。。。
WP-Optimizeの最適化で消してほしいと思うのは私だけ?


スポンサーリンク


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)