将sql查询写入文件而不是执行它的技术原因是什么?

时间:2016-05-10 15:39:55

标签: php mysql performance optimization

标题是什么。我正在阅读一些旧代码,并且有一个部分,其中读入了大量数据,但是不是直接将其写入数据库,而是创建了带有大量sql INSERT查询的ascii文件,并将此文件传递给sql -服务器。当你可以立即执行查询时,为什么会有人这样做?我的理解是,这只能伤害表现吗?或者有充分的理由这样做吗?

2 个答案:

答案 0 :(得分:1)

也许我的想法是在时间片的基础上跟踪数据库的变化或者预先提交备份?在多台服务器上分发?调试也是一个很好的猜测。无论如何,有更好的方法来做这些事情。

答案 1 :(得分:1)

可以说有三种方法可以做很多INSERTs

  • 代码中一次一行,每次交易一行。
  • 批量INSERT语句,每次插入至少100行。
  • LOAD DATA INFILE ...

第一个是最慢的,最后一个是最快的。性能可能超过10倍。

但你描述的内容听起来像一个充满1行INSERTs的文件。这对性能没有帮助,但对程序员来说可能更方便。

如果INSERTs的那一组是一个InnoDB交易,那么它在上面的第一个和第二个子项之间排名。

相关问题