我有一个存储过程,它在临时表中插入大约 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 中不需要这个