Frage

Ich habe viele Einträge in der langsamen Abfrageprotokoll, die sich nur "verpflichten". Sie dauern ungefähr 3 Sekunden, was langsam, aber im Vergleich zu anderen Fragen nicht schrecklich ist.

Die Einträge sehen so aus:

COMMIT;
# Time: 120111 14:11:05
# User@Host: root[root] @ localhost []
# Query_time: 3.140228  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
SET timestamp=1326291065;
COMMIT; 
# Time: 120111 14:14:03
# User@Host: root[root] @ localhost []
# Query_time: 2.036250  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 0
SET timestamp=1326291243;
COMMIT;

Meine Frage ist, warum Rails einen "Commit" ausgeben sollte.

Mein Verständnis ist, dass es Autokommit verwenden sollte, es sei denn, ich mache Transaktionen manuell.

War es hilfreich?

Lösung

Schienen führen eine Transaktion durch in vielen Fällen.

Wenn Sie beispielsweise einen Datensatz mit einem verschachtelten Modell speichern (z. Um Ihre Datenbank konsistent zu halten.

BEARBEITEN

Sobald Sie zwei oder mehr miteinander verbundene Abfragen haben, die die Datenbank verändert haben, müssen Sie eine Transaktion abhalten, aber es scheint, dass Rails auch bei einzelnen Abfragen ein Beginn/Commer durchführen. Ich denke, es wurde so konzipiert, dass es nutzlose Aktivierung/Deaktivierung von Autokommitas vermieden wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top