首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解用户而不炸毁服务器?

了解用户而不炸毁服务器?
EN

Stack Overflow用户
提问于 2011-11-11 14:08:20
回答 4查看 65关注 0票数 1

我正在构建一个服务网络,所有的服务都是完全不同的,现在我正在创建一个仪表板,使体验更容易使用,创建一个用户使用最多的服务的自动列表。

但是,如果我想知道哪些产品是用户使用最多的产品,我如何才能做到这一点而不造成服务器上的重载?我的意思是,每当用户进入该服务的某个页面( http://foo.com/bar/nyancattastic2.php )时,我就会发现关键字(app名称)是'bar',然后通过使用hits=hits+1更新我的数据库中用户名与'bar‘匹配的行来添加命中。

不过,在每个页面上添加更新查询都会破坏我的服务器。

有什么想法吗?或者,我可以问用户他们最喜欢的应用程序是什么,但这更多的是一个UX问题。

任何帮助都非常感谢!

干杯,卡兰

编辑*我预计流量的级别大约是3-10个查询/秒,没有这个建议的更改!

谢谢你所有的答案!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-11 14:11:53

这取决于您的负载,如果每秒钟有几个查询,它可能会成为一个问题,因为当您执行一个更新字段= field + 1时,您会对该字段执行隐式锁定。

如果您有这个级别的通信量,您可以考虑将一行写入日志文件并发布处理它,或者将一行添加到mysql表中,定期进行聚合。另一个想法是解析the服务器日志。

我个人被这个更新字段+ 1咬了,当我试图在一个交通繁忙的国家足球网站上使用它时,是的,它可能成为一个问题,但只有在高流量的情况下。

也可以看看Michael的想法,在负载太高的情况下随机抽取用户的样本。如果每秒有3-5次查询,您当然不必担心,这取决于服务器,但问题可能发生在每秒100次左右。

票数 1
EN

Stack Overflow用户

发布于 2011-11-11 14:14:20

如果您真的关心流量和负载(直到我看到一个问题我才会担心),您可以考虑随机抽样用户:

代码语言:javascript
复制
// Check about 1/5 users:
$random_thresh = 5;

if (rand() % $random_thresh == 0) {
  // Log an insert for this user:
}
票数 2
EN

Stack Overflow用户

发布于 2011-11-11 14:11:36

我不是直接回答你的问题,而是从另一个角度来回答。

可以使用Google跟踪数据,然后使用Analytics获取所需的信息。

http://code.google.com/apis/analytics/docs/

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

https://stackoverflow.com/questions/8095112

复制
相关文章

相似问题

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