2016-07-14 7 views
0

Die Isolationsstufe MySQL WIEDERHOLBARE READWie viele Live-unvollendeten Transaktionen MySQL

Пример работы gesetzt:

START TRANSACTION; 
(1000 INSERT QUERY); 
(1000 SELECT QUERY); 
COMMIT; 

Was passiert, wenn das passiert, COMMIT wird nicht ausgeführt? Wie lange hängt diese Transaktion im Speicher und warten auf Bestätigung? Wo ist die Lebensdauer der Transaktion konfiguriert? Schließlich, wenn es für einige Zeit existiert, gibt es möglicherweise ein Speicherleck?

Antwort

1

Es ist in Kraft, bis die Verbindung geschlossen ist.

MySQL verwendet mysql_real_connect() und interactive_timeout. Aber wenn die Client-Seiten nicht dafür geschrieben sind, sie zu verwenden, ist es wenig sinnvoll, sie mit einem Client, den Sie normalerweise haben, wie MySQL Workbench oder den Client-Dienstprogrammen, zu testen.

Was passiert, wenn das COMMIT nicht ausgeführt wird?

Alles wartet, bis der oben genannte Transaktionshalter Verbindungsstatus behandelt wird.

Wie lange hängt diese Transaktion im Speicher und warten auf Bestätigung?

Möglicherweise für immer.

Wo ist die Lebensdauer der Transaktion konfiguriert?

Es gibt keine.

Schließlich, wenn es für einige Zeit existiert, gibt es möglicherweise ein Speicherleck?

Sicher. Dies ist ein Kommentar, keine Frage.