30

MySQL データベースを 1 時間ごとに更新する必要がありますが、cronjob と MySQL イベントを使用する利点/欠点は何ですか? たとえば、どちらが速いですか?どちらがより安全ですか? ありがとう!

4

8 に答える 8

29

私は常に cron ジョブを使用します。理由は次のとおりです。

  • それがシステム管理者が期待する場所です(この点を過小評価してはいけません)
  • crontab は防弾で、実績があり、非常に広く使用され、理解されています
  • エラー/成功メッセージを好きな場所に自由に誘導/分析できます
  • 一部のデータベース タスクでは、mysql をオフラインにする必要があります (たとえば、フル バックアップ)。そのため、これらのタスクには cron を使用する必要があります。いくつかのタスクを cron で実行し、いくつかのタスクを mysql で実行することはお勧めできません。あなたはどこを見ればよいかわからないでしょう
  • シェル スクリプトがある場合は、他のイベントを連鎖させることができます。

最後に、何かを実行できるからといって、それが良いアイデアであるとは限りません。Mysql はデータ処理が得意です。「シェル」のものには使用しないでください。

于 2013-02-11T04:13:32.977 に答える
24

MySQLイベントスケジューラ–cronの優れた代替品。

MySQLデータベースのログテーブルを毎週切り捨てるなど、特定のプロセスをスケジュールする簡単な方法であるcronについては誰もが知っています。

MySQL 5.1で、MySQLのスタッフは新しいクールな機能を導入しました:MySQLイベントスケジューラ!

イベントスケジューラを使用すると、データベースで実行するタスクをスケジュールできます。これは、ホストがcronジョブを許可しないため、Webスペースでcronジョブを作成できないWeb開発者に最適です。それは本当にcronの素晴らしい代替品です!

いくつかの例:

アプリケーションログテーブルを毎週切り捨てたい場合、イベントスケジュールは次のようになります。

CREATE EVENT PurgeLogTable
ON SCHEDULE EVERY 1 WEEK
DO
BEGIN
DELETE FROM `logs` WHERE `LogTime` <= DATE_SUB(CURRENT_TIMESTAMP,INTERVAL 1 WEEK);
INSERT INTO `audit` (`AuditDate`, `Message`) VALUES(NOW(), "Log table purged succesfully!");
END
于 2013-02-11T04:58:22.290 に答える
9

Mysql は、Cronjob の代わりに使用できるイベント スケジューラを導入します。cronjob には次のような多くの利点があります。

1)Mysqlサーバーに直接書かれています。

2) これはプラットフォームに依存しません。あなたのアプリケーションは、それが問題ではない任意の言語で書かれている可能性があります。あなたはmysqlを知っている必要があります。

3) 定期的にデータベースの更新またはクリーンアップが必要な場合はいつでも使用できます。

4) 毎回クエリをコンパイルする必要がないため、パフォーマンスが向上します。

5) エラーはログ ファイルに記録される可能性があります。構文:

DELIMITER //
CREATE EVENT eventName
ON SCHEDULE EVERY 1 WEEK
STARTS 'Some Date to start'
ENDS 'End date If any' 

DO
BEGIN
   // Your query will be here
END//
DELIMITER ;

詳細については、公式サイトをご覧ください: http://dev.mysql.com/doc/refman/5.1/en/create-event.html

詳細ブログ: http://goo.gl/6Hzjvg

于 2013-11-04T13:58:28.773 に答える
0

Mysql event scheduler is on the advantage for shared host environment. In terms of timing, it can also be scheduled down to the second. Unlike cron, it's by the minute - but you can work around this limitation however.

于 2014-08-13T12:46:02.890 に答える