【发布时间】:2015-10-24 04:51:06
【问题描述】:
我将如何在 PHP 中处理用户统计信息?
我可以选择两种显而易见的方法。两者都有缺陷。
必要时选择 MySQL COUNTs。这里的缺陷是,如果你有很多行要计算,那么它可能会很慢,尤其是当你必须在看似每个页面加载时都这样做时。好处是计数总是正确的。
将用户统计信息存储在统计信息表中。这里的缺陷是,无论何时进行更改,您都必须不断更新它,如果您需要批量更新,这会使代码过于复杂。好处是可以快速为用户选择单行统计信息,而不是执行计数。
我有点“呃”的另一种可能的方法是将作业存储在队列中(并让 Laravel 处理它)。这些作业将使用其他表更新必要的统计信息,以便正确同步。好处是它减轻了 Web 服务器的负担,而缺陷是用户可能会得到不正确的统计数据。 您的好友列表不希望在实际数字差异很大的情况下说有例如 15 个好友和 7 个好友请求。
我已经详细介绍了我想出的方法,但我不确定在为用户提供正确结果以及平衡速度和简单性方面什么是最好的。如果我正在执行 COUNT 方法,那么如果要更新统计信息,我可能会缓存结果并删除缓存记录,但我想在缓存表中为每个用户存储一行有点过头了。只要数据库有足够的空间,也许这不是一个真正的问题,但是通过大量缓存表搜索肯定会很慢?
也许有人可以给我处理用户统计数据的最佳选择。我的头在旋转,因为它想太多了,我需要直截了当。
提前致谢。
【问题讨论】:
标签: php mysql caching statistics