我试图使用单个MySQL查询插入多个记录,但我不想一次插入大量记录。
以下代码提取,构建和插入记录
if(is_array($id_rec)){
$values = "";
foreach($id_rec as $key=>$value){
$values .= "(".(int)$value.",".(int)$id_group."), ";
}
$values = rtrim($values,", ");
$sql = "INSERT IGNORE INTO fu_rec_group_link (id_rec, id_group) VALUES ".$values;
$GLOBALS['db']->execute($sql);
我在这里有两个问题。
非常感谢任何帮助。
答案 0 :(得分:1)
您应该在单个INSERT中插入尽可能多的记录,而不是将其分解为多个INSERTS。
例如,做
INSERT INTO mytable (column1, column2, column3)
VALUES ('text', 'text', 'text'),
('text', 'text', 'text'),
('text', 'text', 'text'),
('text', 'text', 'text');
比做
更快INSERT INTO mytable (column1, column2, column3)
VALUES ('text', 'text', 'text'),
('text', 'text', 'text');
INSERT INTO mytable (column1, column2, column3)
VALUES ('text', 'text', 'text'),
('text', 'text', 'text');
随着行数的增加,性能的总体差异更加明显。