Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie kann ich feststellen, ob ich nicht festgeschriebene Schreibvorgänge in einer MySQL-Transaktion habe?

Das ist eine ziemlich interessante Frage. Ich glaube nicht, dass es einen definitiven Weg gibt, um festzustellen, ob das Ausgeben von Commit einen Unterschied in der laufenden Sitzung macht oder nicht.

Sie können Transaktionen mit show innodb status sehen oder Innodb-Status der Engine anzeigen aber ich glaube nicht, dass Sie Commit für diese Transaktionen ausgeben können.

INNODB_TRX Tabelle in information_schema zeigt aktuell ausgeführte Transaktionen:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html und wieder gibt es nicht viel, was Sie tun können, um sie zu verpflichten. Sie können sie rückgängig machen, indem Sie den zugehörigen Prozess beenden.

Wenn Sie eine Transaktion mit START TRANSACTION ausführen In einer gespeicherten Prozedur können Sie Commit und Rollback manuell handhaben. Sie können sogar Autocommit einstellen auf 0, um zu steuern, wann ein Rollback ausgeführt und wann ein Commit durchgeführt werden soll.