我有两个版本的代码来做同样的事情。一个使用准备好的语句,另一个使用连接的字符串。我的理解是准备好的语句应该会导致性能提高,但是在设置 $size=100 之后(因此迭代了 10000 个插入查询的代码),我无法检测到两种方法之间的性能差异。每个都在 appx 中运行。133 秒。我是否错误地执行了准备好的语句代码?代码如下:
准备好的陈述:
if ($stmt = $mysqli->prepare("INSERT INTO sectors (sector) VALUES (?)"))
{
for ($x = 0; $x < $size; ++$x)
{
for ($y = 0; $y < $size; ++$y)
{
$dirtysector = $x . "-" . $y;
$secstring = clean_sector($dirtysector);
$stmt->bind_param('s', $secstring);
$stmt->execute();
}
}
$stmt->close();
串联字符串:
for ($x = 0; $x < $size; ++$x)
{
for ($y = 0; $y < $size; ++$y)
{
$dirtysector = $x . "-" . $y;
$secstring = clean_sector($dirtysector);
$query = "INSERT INTO sectors " .
"(sector) VALUES " .
"('$secstring')";
$result = $mysqli->query($query);
if(!$result) die("Sector Creation Failed: " . $mysqli->error);
}
}