Wir haben gerade von MySQL nach PostgreSQL migriert, eine bestimmte Zeile für jede Minute wird stark aktualisiert werden. In all den Jahren, in denen das Produkt in MySQL lief, hatten wir keine Probleme, aber als wir nach PostgreSQL wechselten, waren wir mit so vielen Deadlocks konfrontiert.Concurrent update MySQL vs PostgreSQL?
Tabellenstruktur.
Create table tab(col1 int , col2 int , col3 int, PRIMARY KEY(col1));
Kein Index.
Deadlock-Abfrage -
Update tab set col2=col2+1 where col3=xx;
(ja, es wird mehr als eine Zeile für Folge sein).
Meine Frage: Wie hat MySQL diese Situation gehandhabt, um Deadlocks zu vermeiden? (Stellen Sie sich diese Frage, wenn Sie davon ausgehen, dass das Problem in PostgreSQL in Bezug auf diese Abfrage darauf zurückzuführen ist, dass die Zeilen bei jeder zeitgleichen Aktualisierung in unterschiedlicher Reihenfolge abgerufen werden).
Ich hätte vielleicht auch in MySQL mit Deadlocks zu tun gehabt, aber definitiv nicht in dem Ausmaß, wie es mit PostgreSQL passiert ist.
Und ich habe bereits die Frage in https://dba.stackexchange.com/questions/151813/why-can-mysql-handle-multiple-updates-concurrently-and-postgresql-cant durchgegangen die Antwort hier gepostet war nicht sehr überzeugend, als der Autor ging über die Update-Architektur von PostgreSQL und HOT Updates beschwert.
Ich möchte den Unterschied in der Architektur wissen, die es MySQL ermöglicht, dieses Problem zu vermeiden.
Ich bin nicht sicher, ob dies angemessen ist, einen Überlauf zu stapeln entweder als die Fragen, hier sind konkrete Anwendungslösung Probleme nicht " Wie macht diese Anwendung das? ... als mysql ist open source Ich würde die mysql Entwickler-Community konsultieren – MageeWorld
Unsicher, warum Sie downvotes bekommen, das ist ziemlich vernünftig. –
Siehe hier: http://dba.stackexchange.com/q/151813/1822 für eine erweiterte Diskussion –