【问题标题】:Best way to implement article view count in Laravel?在 Laravel 中实现文章查看计数的最佳方法?
【发布时间】:2022-01-26 08:10:39
【问题描述】:

我有一个难题。我需要根据文章的查看次数在我的 API laravel 应用程序中实现阅读次数最多的文章。在我的文章表中,我有 view_count 列。我可以在我的 show 方法上这样做吗

public function show($id)
{
  $article = Article::where('id', $id)->first();
  $article->increment('view_count');
  return $article;
}

或者如果我在这条路线上同时有很多点击,这会减慢响应速度还是不起作用?还是使用谷歌分析等第三方计数器更好?如有任何建议,我将不胜感激,谢谢。

【问题讨论】:

  • 对于这样一个简单的事务,我不会担心现阶段的性能,感觉就像一个微优化。数据库引擎每秒可以轻松处理数万个事务,具体取决于数据库的结构和运行它的硬件。在查看应用程序的不同性能方面时,Laravel debugbar 非常有洞察力。

标签: php laravel google-analytics hitcounter


【解决方案1】:

如果您的平台压力(每个时间快照有很多请求)和/或负载(平均有很多请求)很高,那么增加数据库行并不是您可以做的最佳解决方案。

  • 您可以将文章视图保存在一些内存缓存中,例如 Memcache 或 Redis,并在特定的几小时或几天后将它们保存在数据库中。

  • 您可以使用另一个数据库,尤其是在这种情况下,时间序列数据库 (TSDB),例如 influx DB,用于跟踪您的视图和日志等...

  • 您可以使用谷歌标签管理器和/或其他云 SAAS 服务来更改历史记录。

  • 您可以创建一个单独的表格来保存最受欢迎的文章并更改它们的引擎以优化它们以适应繁重的写作。

  • 您可以添加数据库节点并使用集群和许多其他选项。

只需根据您的规模您的要求

考虑什么是适当的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    相关资源
    最近更新 更多