14

私の Web アプリでは、データベース内のテーブルの 1 つを "クリーンアップ" する 2 つの定期的なイベントを使用しています。どちらも 15 分程度ごとに実行されます。

私の質問は、これが将来のパフォーマンスの問題につながる可能性があるかどうかです。どこかで読んだことがあるので (正確な場所は覚えていませんが)、MySQL イベントは月に 1 回程度実行されるようにスケジュールされているはずです。つまり、この同じイベントにより、テーブルのサイズがかなり縮小されたままになります (15 分以上前のレコードが削除されるため)。これにより、実行の頻度が相殺されるのではないでしょうか?

また、同じ頻度で呼び出される場合、1 つの大きな MySQL イベントと多数の小さな MySQL イベントのどちらがよいでしょうか?

4

1 に答える 1

4

月次ベースでのパフォーマンスの指標はないと思いますが、それをどうするかについての提案にすぎません。イベントを使用してクリーンアップを行っても問題ないと思います。

最後に、ドキュメントは、イベントが

概念的には、これは Unix crontab (「cron ジョブ」とも呼ばれる) または Windows タスク スケジューラの考え方に似ています。

これらの概念は、必要に応じて毎分タスクを実行できるということです。


その質問の2番目の部分について:

シリアライズまたは拡散します。それらを同時に実行される多くのイベントに分割すると、イベントの処理中にアプリケーションの速度が低下する可能性がある非常に高い CPU 使用率のスパイクが作成されます。

そのため、すべてを 1 つのイベントにまとめて連続して実行するか、単一のイベントを分散させて、15 分間の時間枠内で異なる時間に実行されるようにします。個人的には、最初のイベントが優先されると思います。1 つのイベントが通常よりも長く実行され続けたとしても、連続して実行されることが保証されているため、それらを 1 つのイベントにまとめます。

同じことがcronジョブにも当てはまります。一度に 30 の長期実行エクスポートをスケジュールすると、アプリケーションはそのタイムスロット中に惨めに失敗することになります (苦労して学んだことです)。

于 2012-04-20T06:56:23.387 に答える