【发布时间】:2012-03-29 22:29:32
【问题描述】:
我进行了一些简单的测试:在 mysql 和 php 中进行了相同的复杂查询,并测量了处理它们所花费的时间。结果非常有争议,并且表明某些查询 PHP 的处理速度比 MySql 快。
理论上,不应该是MySql更快吗? 我想比较 PHP(脚本语言)接口如何降低复杂 SQL 查询的性能。但为什么我的结果表明并非如此?
这些是平均值,我每个查询运行 3 次!
php代码:
<?php
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test3", $con);
$start = microtime(TRUE);
$result = mysql_query("SELECT * FROM `test`
ORDER BY `test`.`test1` DESC
LIMIT 0,100");
echo "<table border='1'>
<tr>
<th>ID</th>
<th>test1</th>
<th>test2</th>
<th>test3</th>
<th>test4</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['ID'] . "</td>";
echo "<td>" . $row['Test1'] . "</td>";
echo "<td>" . $row['Test2'] . "</td>";
echo "<td>" . $row['Test3'] . "</td>";
echo "<td>" . $row['Test4'] . "</td>";
echo "</tr>";
}
echo "</table>";
$end = microtime(TRUE);
$sqlTime = $end - $start;
mysql_close($con);
echo $sqlTime
?>
结果:以秒为单位的记录数:
【问题讨论】:
-
表的架构是什么?我打赌 DateAccess 上没有索引。
-
这只是一段代码,你拿什么来比较?
-
您是否通过显示编程语言从数据库输出记录所花费的时间来比较数据库系统与可以(但不是必需或限制)使用该系统的编程语言?
-
我什至不明白这个问题。您如何比较 PHP 和 MySQL?我在这里看到的是发出 MySQL 查询的 PHP 代码。
-
我猜你是想说php sort() 函数比mysql 中的ORDER BY 快。虽然你的代码没有显示。此外,您还通过回声等测量输出的时间。