Mysql_num_rows()是有效的



我在一个PHP页面上有几个SELECT语句,我使用Dreamweaver来生成它们。

在检查了它生成的代码之后,似乎有很多我可以在大多数情况下删去的错误,每个语句的mysql_num_rows()行就是一个例子。

所以我想知道是否有人能告诉我这是否实际上节省资源-考虑到查询正在运行,无论如何,这是否有任何实际的开销?


更新:在遵循Chriszuma关于微时间的建议后,以下是我的结果:

//time before running the query
1: 0.46837500 1316102620
//time after the query ran
2: 0.53913800 1316102620
//time before calling mysql_num_rows()
3: 0.53914200 1316102620
//time after mysql_num_rows()
4: 0.53914500 1316102620 
所以没有太多的开销,看起来

mysql_num_rows()在被获取后计算行。这就像你获取所有行并将它们存储在PHP数组中,然后运行count($array)。但是mysql_num_rows()是在MySQL客户端库中用C语言实现的,所以它应该比等效的PHP代码更有效。

请注意,为了使mysql_num_rows()工作,您必须在PHP的内存空间中拥有查询的完整结果。因此存在开销,因为查询结果集可能很大,并且占用大量内存。

我希望这样的调用对性能的影响极小。它只是计算内部存储查询结果的行数。SQL查询本身将占用绝大部分的处理时间。

如果你想确切地知道,你可以在调用之前和之后执行microtime(),看看它到底花了多长时间。

$startTime = microtime(true);
mysql_num_rows();
$time = microtime(true) - $startTime;
echo("mysql_num_rows() execution: $time secondsn");

我怀疑你会在微秒范围内看到一些东西

相关内容

  • 没有找到相关文章

最新更新