ここ最近、本サイトで利用しているWordPressが妙にモッサリするので、原因と対策を取るべく調査してみることに。
WordPressの動作が重い原因の凡そ150%はプラグイン起因なので、どこで足を引っ張っているのかを知るためにMySQL(というかMariaDB)のslowログを確認。
すると以下のSQLが重そうだということが判明。
SELECT DISTINCT ip FROM wp_visitors_stat WHERE time BETWEEN 1744684311 AND 1744702311;
wp_visitors_statテーブルのうちこのSQLで関係しようなカラムはtimeとipなので、複合インデックスを設定すれば改善しそうな感じがしたので
ALTER TABLE wp_visitors_stat ADD INDEX idx_time(time,ip);
みたくインデックスを張ってみたところ、全然速くならない・・・。
もしかしてtimeとipの複合インデックスよりもtime単体の方が実は速いのか?とインデックスを作り直してみたのですが大差ないので、根本的にwp_visitors_statテーブルのデータが多すぎる(260万行もあった・・・)のが原因くさいです。
となるとこのテーブルを利用しているプラグインを止めるのが手っ取り早いので、該当と思われる「Live Visitor Counter」を無効化してみた結果、爆速になったのでこれはもう犯人確定です。
他の対策としてwp_visitors_statテーブルから古いデータをパージすることも考えましたが、「Live Visitor Counter」は単なるアクセスカウンタなので別に無くても困らないことから、このままアンインストールの刑に処すことで対応完了としたいと思います。