【问题标题】:What is the best method to display posts according to popularity in PHP? [closed]根据 PHP 中的受欢迎程度显示帖子的最佳方法是什么? [关闭]
【发布时间】:2014-04-26 06:32:02
【问题描述】:

我有一个文章驱动的网站,我想使用 php 显示一个“热门帖子”列。我有一个名为 'news' 的 php 表,其中包括 'id'、'title'、'description' 等字段。 如何根据受欢迎程度显示我的文章/帖子? 我需要实施网页浏览计数吗?最好的方法是什么? 我想提一下,我使用 MySQL 作为数据库,我正在寻找一个简单且广泛支持的解决方案。 谢谢你。 更新:您能否澄清当我的数据库由于高流量而冻结时会发生什么?我的整个网站都停止工作了吗?

【问题讨论】:

  • 您首先需要定义“流行度”的含义。
  • 这实在是太宽泛了。将其分解为多个问题,并确保在每个问题上展示您迄今为止的工作。问题应该围绕浏览量计数跟踪器以及基于此显示结果的方法。当然,您至少可以证明您一直在考虑采用哪种方法。
  • 我不确定其他网站的受欢迎程度如何。就我而言,它可能是浏览量、分享数等。一篇文章的浏览量越多,它就越受欢迎。
  • Mike Brant,我看到其他答案告诉我使用涉及 MySQL 的方法,但话又说回来,很多人抱怨说,如果访问者数量较多,他们的数据库会被锁定。所以,如果可能的话,我正在寻找意见和代码演示。
  • 您使用的是原始 PHP 吗?呈现您的视图的代码是什么样的。

标签: php mysql sql


【解决方案1】:

我认为您对实现计数同时最大限度地减少对数据库的查询的策略感兴趣。对于中等强度的 php 应用程序,memcache 可能是要走的路。你可以阅读this other question 了解更多关于使用 memcache 的想法。

您还可以运行一个单独的进程(使用cron 或其他东西),它将读取memcache 并将当前值写入您的标准mysql 数据库。我建议考虑这一点,因为 this article 认为 memcache 可能不是满足您所有存储需求的完美解决方案。

关于潜在的数据库冻结,this question on ServerFault 可能会提供一些见解。避免这种情况的最佳方法可能取决于您的存储引擎以及您如何处理原子提交。 This other question about MySql concurrency 可能会提供信息。

【讨论】:

  • 谢谢。您能否澄清当我的数据库由于高流量而冻结时会发生什么?我的整个网站都停止工作了吗?
  • 你能把这个添加到你原来的问题中吗?也许其他人可能对您的这部分问题有更好的答案。
猜你喜欢
  • 2016-10-23
  • 1970-01-01
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 2012-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多