Ich muss jede Stunde meine MySQL-Datenbank aktualisieren, und ich frage mich, welche Vorteile/Nachteile die Verwendung eines Cronjobs VS ein MySQL-Ereignis? Zum Beispiel, was ist schneller? Was ist sicherer? Vielen Dank!Cronjob oder MySQL Event?
Antwort
Ich würde immer ein Cron-Job gehen, denn:
- Das ist, wo sysadmins wird erwartet, dass es sein (dieser Punkt ist nicht zu unterschätzenden)
- crobtab ist kugelsicher, bewährte, Einige Datenbank-Aufgaben erfordern/mysql bevorzugen off-line zu sein (zB voll-Backup) extrem weit verbreitet und verstanden
- Sie können frei direkt/analysieren Fehler/Erfolgsmeldungen, wo Sie
- wollen, so du hast cron verwenden für diejenigen - es ist eine schlechte Idee, einige Aufgaben mit Cron zu erledigen und einige erledigt zu haben mit mysql; Sie werden sich nicht sicher sein, wo
- Sie können andere Ereignisse schauen zu verketten, die folgen sollten, wenn Sie ein Shell-Skript
Und schließlich haben, nur weil man kann etwas tun, bedeutet nicht, Es ist eine gute Idee. Mysql ist gut im Datenkram. Benutze es nicht für "Shell" Zeug.
, Eigentlich, wenn das Update ist nur noch eine Frage von Daten macht es Sinn, es in die SQL zu setzen: Es ist der SQL-Job, um sicher zu sein, dass Daten "OK" sind (zugänglich, aktuell, optimiert, usw.), damit MySQL-Ereignisse die Daten bereinigen, Optimierungen, oder Behandlungen in ihren Veranstaltungen machen Sinn. – Xenos
@Xenos nur weil eine Technologie * etwas tun kann, heißt es nicht, dass es sollte. In diesem Fall handelt es sich bei der Datenhaltung um ein * operatives * Problem, daher ist eine * operative * Lösung am besten geeignet. Nur weil die Aufgabe erfordert, dass SQL ausgeführt wird, heißt das nicht, dass die Datenbank auch die Aufgabe verwalten sollte, periodisch die Ausführung dieser SQL anzufordern. Es ist auch nicht tragbar. – Bohemian
MySQL Event Scheduler - Ein guter Ersatz für Cron.
Wir alle wissen über Cron, eine einfache Möglichkeit, bestimmte Prozesse zu planen, wie zum Beispiel jede Woche die Log-Tabellen in Ihrer MySQL-Datenbank zu kürzen.
Mit MySQL 5.1 haben die Jungs von MySQL eine neue coole Funktion eingeführt: Den MySQL Event Scheduler!
Mit dem Event Scheduler können Sie Aufgaben planen, die Sie für Ihre Datenbank ausführen möchten. Das ist großartig für Web-Entwickler, die keine Cron-Jobs auf ihrem Webspace erstellen können, weil ihr Host sie nicht zulassen wird! Es ist wirklich ein großartiger Ersatz für Cron!
Einige Beispiele:
Sie jede Woche Ihr Anwendungsprotokoll Tabelle trunkieren wollen, ist dies, wie Sie Ihren Ereignisplan aussehen soll:
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
Mysql vorstellen Event-Scheduler die wir alternative verwenden können, um Cron-Job. Es gibt viele Vorteile gegenüber Cronjob wie:
1) Es ist direkt auf Mysql Server geschrieben.
2) Dies ist plattformunabhängig. Ihre Bewerbung könnte in jeder Sprache geschrieben sein, die nicht wichtig ist. Sie müssen nur mysql kennen.
3) Wir können sie verwenden, wenn ein Datenbankupdate oder eine Bereinigung in regelmäßigen Intervallen erforderlich ist.
4) Keine Notwendigkeit, Abfragen jedes Mal zu kompilieren, wenn die Leistung erhöht wurde.
5) Fehler kann Log-Dateien protokollieren. Syntax:
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 ;
Für weitere Informationen können Sie die offizielle Website besuchen: http://dev.mysql.com/doc/refman/5.1/en/create-event.html
Detail Blog: http://goo.gl/6Hzjvg
Mysql Event-Scheduler auf den Vorteil für den gemeinsamen Host-Umgebung ist. In Bezug auf das Timing kann es auch auf den zweiten terminiert werden. Im Gegensatz zu Cron ist es von Minute zu Minute - aber Sie können diese Einschränkung jedoch umgehen.
i mit mysql Ereignis werde schedular
, weil wir nur durch das Schreiben einer Abfrage nicht eine zusätzliche Datei codieren müssen für sie, unser Ziel erfüllt werden.
Wenn nur datenbankbezogene Operationen erforderlich sind, dann ist mysql event schedelar eine gute Wahl.
Bitte überprüfen Sie den Code unten:
if ($product_info) {
if ($product_info['image']) {
$image = $this->model_tool_image->resize($product_info['image'], $this->config->get($this->config->get('config_theme') . '_image_wishlist_width'), $this->config->get($this->config->get('config_theme') . '_image_wishlist_height'));
}
else {
$image = false;
}
}
ich mich mit Event jetzt gerade arbeitete und dachte die gleichen :)
Zusätzlich zu den oben genannten Antworten:
Verwenden EVENTs, wenn die Aufgabe rein datenzentriert ist oder Funktionen ergänzt, die bereits in die Datenbank integriert sind. Möglicherweise verfügen Sie bereits über Auslöser, die Daten bereinigen, bestimmte Ereignisse protokollieren, bestimmte Daten aggregieren usw. Wenn die geplante Aufgabe, die Sie ausführen möchten, Teil des vorhandenen Entwurfs ist, ist sie geschlossener, um die Aufgabe von einem EVENT auszulösen. EVENTs sind zeitliche Auslöser nach allem.
Wenn Sie ein Skript von einer Shell ausführen, benötigen Sie einen Benutzernamen/ein Kennwort, die im Shell-Skript oder in einer Standarddatei gespeichert sind. Für die Ausführung von EVENTs benötigen Sie nach dem Anlegen des EVENTs keinen Benutzernamen/Passwort.
IMCO sollten Sie die Logik in einer gespeicherten Prozedur schreiben; Rufen Sie dann die Prozedur von einem EVENT oder von einem Shell-Skript auf, was immer Ihnen am besten passt. Sie können sogar einen Bereich in Ihrer Benutzeroberfläche erstellen, über den Benutzer die Prozedur manuell aufrufen können.
Formatieren Sie Ihre Inhalte ein wenig, es wäre besser, wenn es gut aussieht. – Billa
- 1. Amazon ami cronjob nicht zugreifen Mysql
- 2. cronjob in asp C#
- 3. Event, Delegat oder Schnittstelle?
- 4. Event Scheduling beim Start mysql
- 5. Aktivieren mysql Event Scheduler auf Server startet
- 6. Mehrere Cronjob-E-Mails
- 7. PHP ob_ * von Cronjob?
- 8. So verwenden Sie Cronjob
- 9. Stündliche Cronjob unter Windows
- 10. Cronjob Speicher von Dateien
- 11. Event-Listener für MySQL-Tabelle ändern?
- 12. iPhone Dev - Delegierter oder Event?
- 13. Finden, wenn MySQL Event zuletzt lief
- 14. in cronjob Verwendung in Wordpress
- 15. Event Scheduler in Mysql nicht ausgeführt
- 16. AWS arbeitet nicht von Cronjob
- 17. Git automatisch ziehen mit Cronjob
- 18. cronjob in codeigniter mit cpanel
- 19. cronjob Ausführen einer PHP-Datei
- 20. Rake nicht richtig in Cronjob
- 21. Cronjob hinzugefügt, aber nicht funktioniert
- 22. Cronjob läuft nicht php Dokument
- 23. Ein Cronjob In Windows Xampp
- 24. Cronjob führt Script nicht korrekt aus
- 25. Event-Handler in XAML oder Code hinter
- 26. Touch-Event für UITabBar oder besser UITabBarItem
- 27. scala event swing :: huhn oder ei
- 28. SDL und C-Tastatur oder Touch-Event
- 29. Running Casperjs per Cronjob auf Heroku
- 30. Fehler in Cronjob über SSH-Server
möglich Duplikat [Mysql Trigger/Ereignisse vs Cronjob] (http://stackoverflow.com/questions/1734073/mysql-trigger-events-vs-cronjob) – bipen