WordPressを長く使っていると、レスポンスが遅くなったり
最悪表示されなくなたりするらしい。
原因はMySQLのオーバーヘッドの増大。
何度も更新をしていくうちに、MySQLにゴミが溜まっていって、
それが参照や更新に時間をかけるようになってくるらしい。
いつ発生するかわからないけれど、予防として最適化を今後やっていこう。
mysqlcheckコマンドで最適化、エラー修正
最適化をするWordPressのプラグインはあるけれど、
このサーバーは最安値のVPSなのでリソースが限られている。
あまり多くのものを入れたら重くなるような気がするので、プラグインに頼らないでできるところは
自前のシェルなどで対応していきたい。
MySQLにはmysqlcheckコマンドがある。
こいつはデータベースの最適化やエラー修正などを行うコマンドで、
MySQLサーバーが稼働している状態で行うことができる。
僕が行いたい事、
1.最適化
2.エラー修正
対象はすべてのデータベース
(WordPress以外のDBも共存しているから一応)
この要件を満たすオプションはこちら。
-o 最適化
-r ユニークではないユニークキー以外の全てを修復できるリペアを実行
-A すべてのデータベースを対象にする。
というわけで作ったコマンドがこちらです。
mysqlcheck -A -o -r -u USER -pPASSWORD
-u のあとにユーザー名(rootとか)
-pのあとにはパスワード
-pだけれども、他のコマンドでもスペースを入れると認識されなかったので、
ここでもスペースなしで直ぐパスワードを入れてみた。
これを実行してみるとちゃんと動いたので、あとはcrontabに登録して定期的に実行させるだけ。
一応一ヶ月程度にしておいたけれど、半年くらいでもいいかもしれない。
んー、やっぱり半年にしておくか
参考資料
mysqlcheck — テーブル メンテナンスと修復プログラム