一時テーブルに約 3K 行を挿入するストアド プロシージャがあります。この SP は、Mysql 5.1 (Windows デスクトップ) で 3 秒かかっていましたが、同じ SP は Mysql 5.5 で約 2 分かかりました。
innodb_buffer_pool_sizeなどを変更してinnodbを最適化するなど、多くのことを試しましたが、何も機能せず、stackoverflowで何かを読んで問題を解決しました。
START TRANSACTION;
CALL sp();
COMMIT;
上記のコードは問題を解決し、実行時間は 3 秒に戻りました。ここで何が起こっているのか正確に教えてください。高速実行のために 5.5 で開始トランザクションを追加する必要があるのはなぜですか? 5.1でこれが必要なかったのはなぜですか