【发布时间】:2020-04-12 14:58:06
【问题描述】:
我想知道是否最好添加一个表列来存储与不同表上的特定 ID 相关联的 X 条目数,或者每次使用查询计算条目数。
例如,我有以下表格
Users Table
ID | name | status
------------------
1 | John | 1
2 | Jack | 2
3 | Mary | 1
Posts Table
ID | user_id | text | status
------------------------------
1 | 1 | blabla | 1
2 | 1 | blabla | 1
3 | 2 | blabla | 2
4 | 1 | blabla | 1
5 | 3 | blabla | 1
在 users 表中添加一个额外的包含帖子数量的列是否更好,这样在没有任何额外查询的情况下显示 100 个用户和帖子数量的列表会更快(?或者更好?),或者例如,我必须检查有多少状态为 1 的条目与 user_id X x 100 个用户相关联
【问题讨论】:
-
不!基本上是因为您会忘记在
user表中维护计数。除非您使用触发器自动执行计数维护 -
@RiggsFolly 我正计划使用触发器。问题仍然存在,但性能会更好吗?谢谢!
-
对于一百个用户来说可能并不明显。我建议尝试两种方法并衡量。
标签: mysql database database-design