【问题标题】:Optimizing big import in php优化 php 中的大导入
【发布时间】:2011-02-27 13:39:38
【问题描述】:

我有一个简单的导入器,它遍历一个相当大的 csv 的每一行并将其导入数据库。

我的问题是:我应该调用另一个方法来插入每个对象(生成一个 DO 并告诉它的映射器插入)还是应该在导入方法中硬编码插入过程,复制代码?

我知道调用第二种方法是优雅的做法,但我一直在脑海中听到函数调用很昂贵。

你怎么看?

【问题讨论】:

    标签: php micro-optimization


    【解决方案1】:

    这应该没关系,因为插入所需的时间可能比 php 代码长几个数量级。

    正如其他人所说,批量插入将为您带来更多好处。 那些行级优化只会让你对好的更高级别的优化视而不见。

    如果您不确定,请用两种方式做一个简单的计时,找出时间不会超过几分钟。

    如果一次性达到一些内存/时间/....限制,请考虑将这两种方法结合起来进行批量插入。

    【讨论】:

      【解决方案2】:

      许多 RDBMS 品牌都支持执行批量导入的特殊命令。例如:

      使用这些命令优于一次从 CSV 数据源插入一行,因为批量加载命令的运行速度通常至少快一个数量级。

      【讨论】:

      • 非常感谢,我什至没有想到:-D
      【解决方案3】:

      我认为这并不重要。考虑批量插入。至少确保您正在使用事务,并考虑在插入之前禁用索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        • 2014-12-28
        • 2020-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-20
        相关资源
        最近更新 更多