トランザクション処理を最適化するには、トランザクション機能のパフォーマンスオーバーヘッドとサーバーのワークロードの理想的なバランスを見つけます。回だけコミットする場合に別のパフォーマンスの問題が発生することがあります。ビジーなデータベースサーバーにパフォーマンスの制限を課すことがあります。操作を単一のトランザクションにまとめます。トランザクションによってデータベースが変更された場合、そのトランザクションのコミットのたびにディスクにログをフラッシュする必要があります。スループットによって、秒あたりに可能な操作数が制限されます。読み取り専用トランザクションを認識し、それらを最適化するのに役立ちます。読み取り専用トランザクションの最適化」を参照してください。大量の行の挿入、更新、または削除後のロールバックの実行は避けます。操作の数倍の実行時間がかかる可能性があります。ロールバックはサーバーの起動時に再度開始されるため、データベースプロセスを強制終了しても役立ちません。変更をただちにディスクに書き込むのではなく、キャッシュできるように、バッファープールのサイズを増やします。ステートメントを定期的に発行し、可能であれば単一の削除または更新を少数の行に対して操作する複数のステートメントに分割することを考慮します。目立たなくなっていると予想されます。より、更新および削除操作がメモリー内にキャッシュされ、それらがそもそも高速に実行されるようになり、必要な場合にロールバックも高速になったためです。多くの挿入、更新、または削除を伴う長時間実行トランザクションを処理するサーバーでこのパラメータ設定を使うようにしてください。回ログをフラッシュしようとします。設定し、これにより、ディスク上データとバイナリログの同期によるディスクフラッシュの数を減らします。ログはただちに、またはトランザクションのコミットの直後でも、物理的に削除されません。以前または同時に開始したトランザクションが終了するまで古いデータは保持されるため、それらのトランザクションは変更または削除された行の以前の状態にアクセスできます。別のトランザクションによって変更されたデータをパージすることを妨げることがあります。分離レベルを使用するほかのトランザクションは、古いデータを再構築するために、それらの同じ行を読み取る場合、多くの作業を実行する必要があります。長時間実行トランザクションでテーブルが変更された場合、ほかのトランザクションからのそのテーブルに対するクエリーは、カバリングインデックス技法を利用しません。通常、セカンダリインデックスからすべての結果カラムを取得できるクエリーは、代わりにテーブルデータから該当する値をルックアップします。クラスタ化されたインデックスを使用してレコードをルックアップする必要がある可能性があります。