如果你会考虑下表
table_A (id (PK), value1, value2)
如果我要插入一组数据,例如:(1,5), (1,3), (3,5)
我可以执行如下查询:
INSERT INTO table_A (value1, value2) VALUES (1,5), (1,3), (3,5)
这会奏效。但是,有人告诉我准备好的陈述会更好。调查准备好的陈述似乎我必须做这样的事情
$stmt = $dbh->prepare("INSERT INTO table_A (value1, value2) VALUES (?, ?)");
$stmt->bindParam(1, $value1);
$stmt->bindParam(2, $value2);
//for each set of values
$value1 = 1;
$value2 = 5;
$stmt->execute();
我的问题是,准备好的语句如何比第一种方法更好(性能方面)?一个是单个查询,另一个涉及同一查询的多次执行。第一个查询是否被编译成三个单独的查询或其他什么?