首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysql_num_rows会大大降低页面加载速度吗?

使用mysql_num_rows会大大降低页面加载速度吗?
EN

Stack Overflow用户
提问于 2011-11-14 12:06:49
回答 4查看 202关注 0票数 1

我建立了一个机密文件。在主/index.php页面中,我有许多类别,比如汽车、电子产品、furniture..etc,你可以点击这些类别,然后给你提供你所在城市可以购买的汽车或手机的列表。

我正在考虑添加/显示每个类别包含的广告数量,例如:汽车(74个)电子产品(32个)等等。

当然是使用mysql_num_rows

我的问题是is>这会使加载index.php页面变慢吗?如果是,速度有多慢?毫秒,秒,还是很多?

谢谢:)

更新>>代码:

代码语言:javascript
复制
$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(*)在速度上有区别吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-14 12:24:25

这不是"poage load“的速度问题。

这是数据库使用的最基本的问题。

主要规则是:

始终只选择您需要的数据。

如果只需要行数-请选择行数,而不是后面要计数的行数。

明白了吗?

让数据库做尽可能多的计算。

票数 1
EN

Stack Overflow用户

发布于 2011-11-14 12:11:51

如果可能的话,最好是缓存这些值。在使用率较低的网站上,您不会看到太多差异,但添加大量用户时,您可能希望缓存这些值,直到它们发生更改。

票数 2
EN

Stack Overflow用户

发布于 2011-11-14 12:17:15

单独使用mysql_num_rows()本身并不慢。如果您使用它是因为(比方说)您选择了每个产品并显示匹配的行数,那么就会很慢!如果您所需要的只是一个计数,则使用如下查询让数据库执行计数:

代码语言:javascript
复制
SELECT COUNT(*) FROM ... WHERE ...

如果你需要一堆计数,可以使用下面这样的命令:

代码语言:javascript
复制
SELECT ..., COUNT(*) FROM ... WHERE ... GROUP BY ...

通常,通过避免不必要的查询、返回未使用的行或在摘要足够时加载数据,尝试减少SQL服务器为整个页面返回的总行数。一般来说,返回的行数越少越好!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8117199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档