Php 在SQL中插入多行

Php 在SQL中插入多行,php,mysql,sql,performance,Php,Mysql,Sql,Performance,绩效相关: 进行1000次查询以插入1000行是否更好: for($i=1;$i<=1000;++$i){ $query = 'insert into table1 (First,Last) values ("Fred","Smith")'; mysql_query($query); } 考虑到可能有很多值,我选择一次插入10个。我不知道这样是否合适,在这种情况下,最好的做法是什么?第二种更好。连接到数据库很昂贵 换一种说法,什么更快?

绩效相关:

进行1000次查询以插入1000行是否更好:

    for($i=1;$i<=1000;++$i){
         $query = 'insert into table1 (First,Last) values ("Fred","Smith")';
         mysql_query($query);
    }

考虑到可能有很多值,我选择一次插入10个。我不知道这样是否合适,在这种情况下,最好的做法是什么?

第二种更好。连接到数据库很昂贵


换一种说法,什么更快?1000次运送1000个箱子还是一次运送1000个箱子?

第二次更好。连接到数据库很昂贵


换一种说法,什么更快?1000次下1000个盒子还是一次下1000个盒子?

第二次更好,你可以控制它,第一次你不能控制插入不同的值

第二次更好,你可以控制它,第一个问题是,你无法控制插入不同的值,我想,这个问题在以下几点上回答得很好:

如果同时从同一客户机插入多行, 使用具有多个值列表的INSERT语句插入多个 一次行。这相当快(在某些情况下快很多倍) 案例)而不是使用单独的单行INSERT语句

尽管如此,我还是建议使用整个页面,因为它列出了优化多插入的几种策略(针对不同类型的引擎)。但在最后它提到

INSERT加载数据的速度仍然比加载数据填充慢得多, 即使在使用刚才概述的策略时


。。。这是非常正确的:如果您需要将一些巨大的(但静态的)数据集加载到DB中,请改用语句

我想,这个问题在以下会议上得到了很好的回答:

如果同时从同一客户机插入多行, 使用具有多个值列表的INSERT语句插入多个 一次行。这相当快(在某些情况下快很多倍) 案例)而不是使用单独的单行INSERT语句

尽管如此,我还是建议使用整个页面,因为它列出了优化多插入的几种策略(针对不同类型的引擎)。但在最后它提到

INSERT加载数据的速度仍然比加载数据填充慢得多, 即使在使用刚才概述的策略时


。。。这是非常正确的:如果您需要将一些巨大的(但静态的)数据集加载到DB中,请改用语句

它简单,批量处理的成本比逐个处理要低。这一切都是关于成本的,就性能而言,这是一种资源。

它简单,批量处理的成本比逐个处理要低。这一切都是出于成本考虑,在性能方面,这是一种资源。

但如果卡车不够大,无法容纳所有这些箱子,该怎么办?:)(查询大小限制?)@Cristy,然后将其拆分为包含每个箱子最大数量的最小行程数。仍然比1000次快得多。但是如果卡车不够大,装不下所有的箱子呢?:)(查询大小限制?)@Cristy,然后将其拆分为包含每个箱子最大数量的最小行程数。仍然比1000次旅行快得多。
   $query = ' insert into table1 (First,Last) values ("Fred","Smith"),
      ("John","Smith"),
      ...
      ("Michael","Smith"),
      ("Robert","Smith")';
   mysql_query($query);