sql脚本导入 MySQL手动生成sql脚本一次性导入并更新超大量数据

03/15 01:09:59 来源网站:辅助卡盟网

用这样生成的 sql 去测试

只用了十多秒就完事了sql脚本导入,挺不错,这就把脚本搬到服务器上开导,顺带写个博客。

简单猜想单条 update 为什么这么慢

其实从实际存储结构去分析,update 和 insert 不同,批量的 insert 可以在提前划好的空间一大块一大块的填数据,所以一次写多个比单条执行快,但是看上面两条 update 语句其实都是在一条条的导入数据,甚至批量的写法还要加一个条件判断的过程,应该执行更慢才对,为什么会比批量单条快这么多呢?

我的猜测是可能跟日志打印有关,我们都知道,在 Java 中

System.out.println();

是非常慢的,因为他涉及到阻塞 io 打印,还有同步锁,

MySQL在执行 source 时的日志输出很可能也是这个情况,我们再看一眼第一个截图

可以看到,每行数据更新完成后他都会打印一行日志,日志记录的语句执行时间只有 0.00 sec

可能更新用的时间还没他打印日志用的时间长,就这样大量的阻塞io拖慢了语句的执行速度,而批量更新的写法大大减少了日志的打印量所以让执行时间减少,总结就是并不是批量更新更快,而是单条执行被拖慢了。

来源:【九爱网址导航www.fuzhukm.com】 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

    暂无相关资讯
sql脚本导入 MySQL手动生成sql脚本一次性导入并更新超大量数据