在循环期间将mysql查询回显到屏幕时,php脚本是否变慢

时间:2019-07-03 16:28:54

标签: php mysql

如果我有一个将数据插入到mysql表中的循环,我是否将查询回显到屏幕上会减慢脚本的速度以至于产生显着影响?

for ($a=1;$a<=10000;$a++){
   $ins = "INSERT into (number) values (".$a.")";
   $stmt = $db->query($ins);
   echo $ins."\n";
}

2 个答案:

答案 0 :(得分:1)

实际上,对于您的情况,回显不是很费时,但是在迭代中插入单个列值(例如10K次)则比较耗时,对于您来说,在循环中为一列插入10K行。您可以像这样用单个查询插入多行-

FORCE ORDER
  

使用MYSQL,您可以包括多个列值列表,每个列表值都包含在内   在括号内并用逗号分隔

更具体地说,像这样的东西-

INSERT INTO number(a) VALUES (4),(6),(7);

答案 1 :(得分:0)

实际上,在10000迭代中插入10000行将花费时间而不是echo查询。

我建议您将值存储到如下数组中:

<?php
$yourArray = array();
for ($a=1;$a<=10000;$a++){
   $yourArray[] = $a;
}
?>

然后,在循环外使用implode()来输入逗号分隔的值

<?php
$yourQuery = "INSERT into (number) values ";
$yourQuery .= "("; // for starting bracket
$yourQuery .= implode("),(",$yourArray);
$yourQuery .= ")"; // for ending bracket
?>