我有一个存储过程,在临时表中插入大约3K行。这个SP在Mysql 5.1(windows桌面)上用了3秒钟,同样的SP在Mysql 5.5上花了大约2分钟。Mysql 5.5 Innodb缓慢插入查询问题
我尝试了很多东西,如通过更改innodb_buffer_pool_size等来优化innodb,但没有任何工作,然后我读了一些关于stackoverflow的东西,它解决了我的问题。
START TRANSACTION;
CALL sp();
COMMIT;
上述代码解决了这个问题,现在我回到了3秒的执行时间。有人可以告诉我究竟发生了什么吗?为什么我必须在5.5中添加启动事务才能快速执行?为什么不我需要这在5.1
您是一次添加一行还是批量插入? – ethrbunny
一次一个,插入发生在一个循环中 – Sumedh
如果你可以把它们作为一个批处理(即'insert into tbl(var)values(v1),(v2),(v3),...'),它会SQL可能会通过批量整个过程来“帮助你”,只是猜测 – ethrbunny