mysqlcheck(またはdatabsaeの最適化)を定期的にスケジュールする必要がありますか?

mysqlcheck(またはdatabsaeの最適化)を定期的にスケジュールする必要がありますか?

私たちは約 200 万件の投稿があるフォーラムを運営していますが、そのまま放置すると、mySQL のオーバーヘッド (phpMyAdmin にリストされている) がかなり大きくなる (数百メガバイト) 可能性があることに気づきました。

テーブルを最適化するために通常の mysqlcheck をスケジュールすることは良い方法でしょうか? たとえば、オフピーク時に週に 1 回実行しない理由はありますか?

夏の間、mysql がすべてのリソースを使い果たしたために、サイトが頻繁にクラッシュする時期がありました。そのとき、私はオーバーヘッドが膨大であることに気付き、データベースを最適化しました。それ以来、安定性に問題は発生していません。それが問題の軽減に役立っているのであれば、これを自動的に行う cron を設定すればよいと考えました。

答え1

必要がない限り mysqlcheck を実行しない理由は、mysqlcheck がデータベースの読み取りロックを取得し、読み取りロックが保持されている限りロックされたテーブルへの書き込みが防止されるためです。

フォーラムが利用できなくなった場合は、cron 経由で mysqlcheck をスケジュールするのが合理的ですが、それほど頻繁ではありません。

//キリスト教徒

関連情報