Ich habe festgestellt, dass die Transaktion sicher erneut versucht werden kann
Deadlocks sind nicht gefährlich. Versuchen Sie es erneut.
Ссылка
Es gab eine einzelne Anweisung "super insert..select", die in die Engpass-Tabelle eingefügt wurde, nachdem eine verbundene Kombination aus zwei anderen Tabellen ausgewählt und Unteranweisungen in der Engpass-Tabelle sowie einige kleine Tabellen verwendet wurden.
Der Flaschenhals wartete "auf das Schloss", er wartete ohne Zweifel auf Schreibsperre. InnoDB schien die perfekte Lösung zu sein. (für Schreib-schweren Tisch) Und die Zögereien über diese eine Aussage sind jetzt alle weg.
Aber jetzt tritt das Problem auf: Für jeweils 100 Ausführungen der Anweisung werden etwa 1 oder 2 von ihnen aufgrund des Deadlocks fehlschlagen. Ich glaube, der Deadlock tritt nur zwischen den Instanzen des "Super insert..select" auf. Ich werde eine automatische Wiederholung dieser Anweisung installieren, aber ich habe mich gefragt
Frage: Hat MySQL JDBC eine Option, um die automatische Wiederholung von Anweisungen nach Erhalt der Ausnahme zu aktivieren, oder muss ich meinen eigenen Code dafür schreiben?
%Vor%In diesem Fall habe ich keine Transaktion starten oder Transaktionsbefehle stoppen. Genau diese eine Anweisung "super insert..select"