【发布时间】:2020-08-25 19:11:19
【问题描述】:
我假设 StackOverflow 上的投票是用户和帖子之间的关系。计算每个页面加载的投票会很昂贵,所以我假设它缓存在某个地方。是否有存储可以从其他数据库数据计算的值的最佳做法?
-
我可以将它存储在 Redis 之类的东西中,但是按投票对问题进行排序会很昂贵。
-
我可以将它作为新列存储在帖子表中,但它会使其他工程师感到困惑,因为派生值通常不与实际数据一起存储。
-
我可以为派生数据创建一个实体-属性-值表,这样我就可以将它与帖子表连接起来。连接对性能有轻微影响,我不喜欢用非结构化数据填充表的想法,因为它很容易最终被未使用的数据填充。
我使用的是 MySQL 8,还有其他选择吗?
还有一点需要考虑的是,这个数据不需要保持一致,如果总票数稍有偏差也没关系。因此,当创建投票时,不需要立即更新投票总数,可以定期运行作业来更新投票。
【问题讨论】: