Hi,
ich habe eine recht datenbanklastige Anwendung, basierend auf der Perl-DBI und Mysql 5.1. Es werden sehr viele UPDATE Anweisungen produziert, die mittlerweile den Bottleneck der Anwendung darstellen. Das Ergebnis der UPDATE Anweisung ist nicht kritisch, es muss nicht sofort, sondern nur zeitnah aktualisiert werden und selbst wenn mal etwas verloren ginge, wäre es nicht schlimm.
Meine Frage: Bei INSERT gibt es ja die Möglichkeit DELAYED anzugeben und nicht auf das Resultat zu warten. Bei UPDATE gibt es soetwas nicht.
Hier sind ja ein paar SQL Spezialisten versammelt, vielleicht habt ihr einen Tipp, welcher Ansatz Sinn machen würde, bzw. wo man vielleicht sauf schon bestehende Klassen zurückgreifen kann:
vg,
martin
ich habe eine recht datenbanklastige Anwendung, basierend auf der Perl-DBI und Mysql 5.1. Es werden sehr viele UPDATE Anweisungen produziert, die mittlerweile den Bottleneck der Anwendung darstellen. Das Ergebnis der UPDATE Anweisung ist nicht kritisch, es muss nicht sofort, sondern nur zeitnah aktualisiert werden und selbst wenn mal etwas verloren ginge, wäre es nicht schlimm.
Meine Frage: Bei INSERT gibt es ja die Möglichkeit DELAYED anzugeben und nicht auf das Resultat zu warten. Bei UPDATE gibt es soetwas nicht.
Hier sind ja ein paar SQL Spezialisten versammelt, vielleicht habt ihr einen Tipp, welcher Ansatz Sinn machen würde, bzw. wo man vielleicht sauf schon bestehende Klassen zurückgreifen kann:
- Updates innerhalb der Anwendung sammeln und periodisch mehrere auf einmal ausführen
- einen externen Daemon oder so einrichten, der an einem Socket lauscht und selber eine Queue bildet, so dass die eigentliche Anwendung mit voller Geschwindigkeit weiterläuft
- Lösungen in MySQL direkt (Speicherbasierte Tabellen, andere Engines...)
vg,
martin