记一次大文件导入优化

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011870280/article/details/86149010

最近线上文件导入极慢,每秒才导入两行。来个25W的文件就要导半天

后来发现时间消耗在每条记录的校验sql上了。每条记录要发两条sql校验耗时400毫秒,25w条数据就要27小时!

这种情况在测试环境没有发生过,测试环境查询sql只要8毫秒,估计生产数据库是远程的,网络传输有延时。

考虑到文件日后还有增大的可能性。

遂改成:

1,将导入文件不发sql校验正确性,直接落库在一张临时表里

2,然后发sql在数据库比对数据。

3,将比对好的数据replace到正式表中。

这样改完后就不用逐条处理,发几十万查询sql。改完后开发环境每秒能处理500条数据,25万条数据只要9分钟。

猜你喜欢

转载自blog.csdn.net/u011870280/article/details/86149010