与绩效相关:
最好让1000个查询插入1000行:
for($i=1;$i<=1000;++$i){
$query = 'insert into table1 (First,Last) values ("Fred","Smith")';
mysql_query($query);
}
或者使用PHP创建查询(通过在for循环中连接值),如下所示:
$query = ' insert into table1 (First,Last) values ("Fred","Smith"),
("John","Smith"),
...
("Michael","Smith"),
("Robert","Smith")';
mysql_query($query);
鉴于可能有很多值,我选择一次插入10个值。我不知道这是否可以,在这种情况下最好的做法是什么?
答案 0 :(得分:6)
第二个更好。连接数据库非常昂贵。
另一种说法,更快的是什么? 1000次旅行可以下载1000个箱子或者一次旅行可以下载1000个箱子吗?
答案 1 :(得分:3)
我想,这个问题在official site:
得到了很好的回答如果您同时从同一客户端插入多行, 使用带有多个VALUES列表的INSERT语句来插入多个 一次排。这速度要快得多(有些速度要快很多倍) case)比使用单独的单行INSERT语句。
我建议整个页面,因为它列出了优化多插入(针对不同类型的引擎)的几种策略。然而在最后它提到了......
加载数据的INSERT仍然比LOAD DATA INFILE慢得多, 即使使用刚刚概述的策略。
...这是完全正确的:如果您需要将一些巨大的(但是静态的)数据集加载到DB中,请改用LOAD DATA INFILE语句。
答案 2 :(得分:0)
第二个是更好的,你可以控制它,第一个你没有太多控制插入不同的值
答案 3 :(得分:0)
批处理的简单,成本低于逐个处理。这完全取决于成本的高低,在这方面它是一种性能资源。