
私たちは約 200 万件の投稿があるフォーラムを運営していますが、そのまま放置すると、mySQL のオーバーヘッド (phpMyAdmin にリストされている) がかなり大きくなる (数百メガバイト) 可能性があることに気づきました。
テーブルを最適化するために通常の mysqlcheck をスケジュールすることは良い方法でしょうか? たとえば、オフピーク時に週に 1 回実行しない理由はありますか?
夏の間、mysql がすべてのリソースを使い果たしたために、サイトが頻繁にクラッシュする時期がありました。そのとき、私はオーバーヘッドが膨大であることに気付き、データベースを最適化しました。それ以来、安定性に問題は発生していません。それが問題の軽減に役立っているのであれば、これを自動的に行う cron を設定すればよいと考えました。
答え1
必要がない限り mysqlcheck を実行しない理由は、mysqlcheck がデータベースの読み取りロックを取得し、読み取りロックが保持されている限りロックされたテーブルへの書き込みが防止されるためです。
フォーラムが利用できなくなった場合は、cron 経由で mysqlcheck をスケジュールするのが合理的ですが、それほど頻繁ではありません。
//キリスト教徒