MySQL - Ausgabe von Updates mit niedriger Priorität

MySQL - Ausgabe von Updates mit niedriger Priorität

Gibt es eine Möglichkeit, Updates mit niedriger Priorität in MySQL auszuführen?

Ich verwende eine Anwendung mit sehr hoher Auslastung, bei der Tausende von Benutzern gleichzeitig versuchen können, dieselben Datensätze zu aktualisieren. Dabei handelt es sich hauptsächlich um sitzungsbasierte statistische Informationen, von denen viele ignoriert werden könnten, wenn mit der Anforderung eine Wartezeit verbunden ist. Ich möchte prüfen können, ob eine Tabelle/Zeile gesperrt ist, und wenn ja, einfach keine Aktualisierungsabfrage an den Server weiterleiten. Ist das möglich?

Antwort1

Welche Datenbank-Engine verwenden Sie? MyISAM oder InnoDB? Wenn es MyISAM ist, können Sie mit dem folgenden Befehl Sperren anzeigen:

SHOW FULL PROCESSLIST;

Quelle:Wie kann ich MySQL-Sperren anzeigen?

Ich würde Ihnen jedoch empfehlen, einen anderen Ansatz zu wählen. Anstatt einen einzelnen Konfliktpunkt zu haben, fügen Sie einfach mit INSERT DELAYED für jeden Datenpunkt eine neue Zeile ein. Dann können Sie am Ende des Tages oder wann immer Sie die Daten benötigen, alles stapelweise verarbeiten. Beachten Sie, dass dies nur für die Engine-Typen MyISAM, MEMORY und ARCHIVE funktioniert.

Quelle: dev.mysql.com/doc/refman/5.1/en/insert-delayed.html

Ich denke, diese Frage gehört zu Stack Overflow. Dort erhalten Sie wahrscheinlich eine bessere Antwort.

-Geoffrey Lee

verwandte Informationen