9月に参加したWord Campでfiregobyの宮内さんが言っていた、
- プラグインの入れすぎは良くない(重くなる)
- プラグインを削除しても裏側の設定みたいなものは残る
(おっぱい問題というらしい…これは公式用語なのかw?!)というのがずーっと気になっていたので、いまさらですが調べてみました。
プラグインの入れすぎは重くなる、その理由と原因
『プラグインも普通にいろいろなものを使っていたら処理が重くなる』というのは分かりますが、インストールしてみて削除してまた違うのをインストールしてみて…というのを繰り返し、その上で何個かしか有効化してなくても重くなるそうですΣ(・口・)
重くなる理由の一つが、データベースのデータによるものらしいです。
「プラグインを削除しても裏側の設定みたいなものは残る」というのが、
プラグイン本体は削除できても、細かい設定項目がDBにデータとして残ったままになる(ものがある)、ということのようです。
プラグインはDBにデータを保存するものもある
プラグインの設定画面で、何か項目を設定するとその内容がDBに保存されます。
保存場所は、wp_option(wpは初期設定で変更していれば変わります)というテーブルです。
プラグインを削除した時に、きれいにDB上も削除するように作られているプラグインもあるけど、なかにはデータを放置してしまうプラグインもあるようです。
プラグイン削除時にDBのデータを残す悪いプラグインもある
WordPressは動的なCMSなので、ブラウザからレスポンスがある度にDBに必要情報を取に行って、それをブラウザに表示させています。
これは、DBの情報がたくさんあればあるほど、探し物に時間がかかる = 表示(レスポンス)が重くなる、ということです。
その情報がたくさんになる原因の一つがプラグインによるもので、尚且つ、削除時にDBにデータ残す(使わないデータなのでゴミってことです)ので、
プラグインの入れすぎも良くはないし、いろんなプラグインを試していると、知らぬ間に良くないプラグインによってDBにデータが残されてデータが肥大化してしまうということです。
今は、WP側の審査もザルではないそうですが、以前はこういうプラグインも審査通ってしまっていたようです。
でも削除時の処理のこれって…プラグインの作者さん次第ってことです。
じゃぁどうすれば、削除データ残さないプラグインか調べられるの―?!
キレイに削除されるプラグインか、調べる方法
インストールして、有効化する前に「プラグイン編集」でソースが見れますので、そこで調べます。
DBに書き込んでるか調べるポイント
// データベースオプションを作成・保存
- add_option()
- register_setting()
…DB内の、xxx(最初に設定した接頭辞)_option(何もしてなければwp_option) というテーブルに、()内を保存しています。
// 既存オプションの値を更新
- update_option()
…DB内の情報を上書き保存しています。
もしこれらがなければ、DBに保存はしてないです。
DBを削除する処理もあるか調べるポイント
// オプションを名称で指定して削除
- delete_option( $option );
…()内のデータ(管理画面などで設定した項目)を削除しています。
プラグインのファイルの中に、アンインストーラー.phpというファイルがあっても、DBは消し忘れているとかみられましたので、ソース見ないと分からないってことです。。。
DBからプラグインのごみデータを削除する方法
phpMyAdminなどでDBにログインして直接削除することもできますが・・・
DBをきれいに掃除してくれるプラグインがあるそうです。
Clean Options
参考サイト:WordPress春のお掃除大作戦!データベースをキレイにし最適化する方法
えぇぇぇここでプラグイン〜?…って思いますよね;私もそう思います(-ω-)
本末転倒な気がするけど、直にphpMyAdminで入って間違った操作するよりは、ここはプラグイン使った方が安心かと思います。(私はphpMyAdmin使って消してましたが、操作の感想書く為にインストールして動かしてみました)
※一応ソースみたら、delete_option($orphanopt) という記述があったので、設定は削除時に消されるようです。安心。
Clean Optionsの使用感
使い方はこちらでも書かれてますので参考にしてみて下さい。
WordPressの肥大化したデータベース[wp_options]内から不要なデータを発見して削除してくれるプラグイン「Clean Options」の使い方
英語が並んでうわぁ〜ってなりますが(苦笑)、使ってみた感想としては、プラグイン使ってDBのデータが並んでも、どれが現在サイトにないプラグインなのかが分からないという点が問題かなーと思いました。オプション名でググれるリンクが横に一緒に表示されますが、まぁプラグイン本体の情報が出てこない気がしました(苦笑)。
私は309レコードくらいだったのでまだまだサイトが重くなる程ではありませんが、
多い場合は照らし合わせながらやるか、もしくはプラグイン全削除→DBのオプションテーブルの、プラグインっぽいヤツ全部削除→使うプラグインだけ再インストール とか対応が面倒になりますね。
私自身このプラグインの使い方としては、今後プラグインのインストール削除した時のDB掃除用、という位置づけで運用を検討してみます。
(一個気になるのは、このプラグインのverが更新されていないコト。。。2年以上はちょっと。。。)
なんでもかんでも入れて有効化→試して消して、は良くない!
有効化する前にプラグインのソースをチェック!
更新メンテナンスがされてないプラグインはちょっと注意!(WPのアップデートのタイミングで使えなくなる場合もあるので)
自己責任だから、ちゃんと管理しなきゃね!ってことですね。。。
参考サイト
WordPressプラグインのおっぱい問題