我建立了一个机密文件。在主/index.php页面中,我有许多类别,比如汽车、电子产品、furniture..etc,你可以点击这些类别,然后给你提供你所在城市可以购买的汽车或手机的列表。
我正在考虑添加/显示每个类别包含的广告数量,例如:汽车(74个)电子产品(32个)等等。
当然是使用mysql_num_rows
我的问题是is>这会使加载index.php页面变慢吗?如果是,速度有多慢?毫秒,秒,还是很多?
谢谢:)
更新>>代码:
$query="select * FROM db_post WHERE cat='cars'";
$result= mysql_query($query);
$carnum=mysql_num_rows($result));
<td class="car"> <li class="listclass"> <a href="city.php?cat=cars">CARS <?php echo "("."$carnum".")"; ?></a></li> </td> <?php echo ?> 我想要的只是数字。mysql_num_rows和SELECT COUNT(*)在速度上有区别吗?
发布于 2011-11-14 12:24:25
这不是"poage load“的速度问题。
这是数据库使用的最基本的问题。
主要规则是:
始终只选择您需要的数据。
如果只需要行数-请选择行数,而不是后面要计数的行数。
明白了吗?
让数据库做尽可能多的计算。
发布于 2011-11-14 12:11:51
如果可能的话,最好是缓存这些值。在使用率较低的网站上,您不会看到太多差异,但添加大量用户时,您可能希望缓存这些值,直到它们发生更改。
发布于 2011-11-14 12:17:15
单独使用mysql_num_rows()本身并不慢。如果您使用它是因为(比方说)您选择了每个产品并显示匹配的行数,那么就会很慢!如果您所需要的只是一个计数,则使用如下查询让数据库执行计数:
SELECT COUNT(*) FROM ... WHERE ...如果你需要一堆计数,可以使用下面这样的命令:
SELECT ..., COUNT(*) FROM ... WHERE ... GROUP BY ...通常,通过避免不必要的查询、返回未使用的行或在摘要足够时加载数据,尝试减少SQL服务器为整个页面返回的总行数。一般来说,返回的行数越少越好!
https://stackoverflow.com/questions/8117199
复制相似问题