私はMySQLのパフォーマンスブログでthis postを読んでいました。アプリケーションの下InnoDBの最適化 - 「更新を行うときにトランザクションを使用する」 - なぜですか?
チューニングそれは言う:
まず私は現在だけで、複数の挿入や更新がある場所でのトランザクションを使用していますアップデート
を行っているときに、トランザクションを使用していることを確認してください同時。すなわち2つ以上のテーブル。
したがって、すべてUPDATE
を変更してトランザクションに変更する必要がありますか?
prepare sql
bind params
commit
と::データベースレベルで何が起こるかという点で
begin transaction
prepare sql
bind params
execute statement
commit transaction
それは一方が他方より速くなり、
の違いは何ですか?
+1。より技術的な分析:ログに書き込むのを遅らせるバッファー(innodb_log_buffer_size)があります。バッファーは常時コミットすれば頻繁にフラッシュされ、パフォーマンスが低下します。バッファも自動的に1秒ごとにフラッシュされます。 –