0

假设我想在 Web 应用程序中添加记录用户操作的功能。我的表架构将类似于以下内容:

tbl_history

+----+---------+--+-----------+
| id | user_id |  | action_id |
+----+---------+--+-----------+
| 1  |       1 |  |         1 |
| 1  |       1 |  |         2 |
| 1  |       2 |  |         2 |
+----+---------+--+-----------+

用户可以生成许多操作,因此我需要对这段历史记录进行分页。为了做到这一点,我需要计算出用户的总行数,然后计算应该有多少页数据。

如果我让数百名用户每天生成数千行数据,哪种方法最有效?

一个)

使用 MYSQL 的函数来查询特定用户COUNT()的表中的数据行数。tbl_history

二)

有另一个表,它将为表中的用户保留历史计数tbl_history

+---------+--+---------------+
| user_id |  | history_count |
+---------+--+---------------+
|       1 |  |             2 |
|       2 |  |             1 |
+---------+--+---------------+

这将使我能够在不到 1 毫秒的时间内通过简单的查询立即获得总行数。

权衡是我将需要执行更多查询来更新每个用户的计数,并再次在页面加载时。

使用哪种方法更有效?或者有没有其他更好的方法?任何技术解释都会很棒。

提前致谢。

4

0 回答 0