首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql用户统计

问Mysql用户统计
EN

Stack Overflow用户
提问于 2012-06-17 14:02:22
回答 2查看 875关注 0票数 0

快速方法描述:

我有两张桌子,我们把它们命名为第一桌和第二桌。每个表记录都有其作者(用户)的id。每个用户的记录没有限制。

我想为每个用户运行一个统计页面。

例如,当John登录时:

A类(名单)的20 %-B类的150 (名单)

演示代码

代码语言:javascript
复制
$a = mysql_query("SELECT * FROM A WHERE userID='$userID'");
$b = mysql_query("SELECT * FROM B WHERE userID='$userID'");

$a_num=mysql_num_rows($a);
$b_num=mysql_num_rows($b);

$echo "$userID | $a_num of A <a href='/a/$userID'>(list)</a> | $b_num of B <a href='/b/$userID'>(list)</a> ";

问题:

那么,当表记录的数量达到几百个或上千个时,检查记录的数量(每次用户访问他的统计页面)是一个最佳的解决方案吗?有没有更好的方法来运行统计?也许是一个单独的表来统计每个用户的记录?

谢谢:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-17 14:10:28

由于您似乎没有使用结果集本身,

代码语言:javascript
复制
$a = mysql_query("SELECT COUNT(*) FROM A WHERE userID='$userID'");

一步就能得到你所需要的数。而且,它很可能比你所做的要快得多。

其次,你正在考虑的那种优化是完全有可能的(只需要一个group by userID,并且每小时或每天运行一个脚本,取决于所需的准确性),但是我真的会用这种方法等待,直到你完全确定你需要它,因为它意味着服务器需要额外的工作和需要维护的额外代码。

第三,也是最后一步,去掉不推荐的mysql_query调用,并查找已准备好的语句。一旦你习惯了,就会安全得多,而不是更难。

票数 3
EN

Stack Overflow用户

发布于 2012-06-17 14:09:44

你可以让MySQL帮你数一数:

代码语言:javascript
复制
SELECT COUNT(*) AS a_num FROM A WHERE userID='$userID'

这将使应用程序和MySQL服务器之间的I/O最小化。你自己来测试一下。

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

https://stackoverflow.com/questions/11071854

复制
相关文章

相似问题

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