Railsアプリケーションを使用したMySQLスロークエリログの「コミット」2.3.5

StackOverflow https://stackoverflow.com/questions/8826267

質問

スロークエリログには「コミット」しているだけのエントリがたくさんありますが、約3秒かかりますが、他のクエリと比較して遅いですが、ひどくありません。

エントリは次のようになります:

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;

私の質問は、なぜレールが「コミット」を発行するのでしょうか?

私が理解しているのは、手動でトランザクションを行っていない限り、自動委員会を使用する必要があるということです。

役に立ちましたか?

解決

トランザクションを実行するRails 多くの場合。

たとえば、ネストされたモデル(多くのコメントがあるトピックなど)でレコードを保存する場合、Railsはトランザクションで更新(1トピックとnのコメント)をラップします データベースを一貫性に保つため.

編集

データベースを変更する2つ以上のクエリが互いにリンクされているとすぐに、トランザクションが必要ですが、Railsは単一のクエリでも開始/コミットを実行するようです。役に立たない自動コミットのアクティベーション/非アクティブ化を避けるために、このように設計されていると思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top