【发布时间】:2017-02-17 12:03:20
【问题描述】:
我必须维护数据库中某些记录的排名,这些记录会根据上次交互的时间而改变。
Post
______________
Id
Content
LastAccessTime
LastRankedTime
Rank
我正在考虑定期访问数据库并获取 LastRankedTime > 15 分钟的所有帖子
然后在将它们全部写回数据库之前对每个项目应用 Rank()
如果我必须对超过 10.000 条记录进行排名,我是否需要担心长时间的排名计算或大型读/写会使我的服务器/数据库超载?
解决这个问题的更好方法是什么? 每次 Db 访问记录数有限的受限制线程将如何提供帮助?
【问题讨论】:
-
根据您使用的数据库,可能已经有这种机制。例如,在 SQL Server 中,
ROWVERSION可以告诉您自上次查看某行以来是否已更新。 -
但是我仍然需要把记录拉出来重新做排名,因为它也依赖于其他指标。所以在这种情况下,这可能不会有太大帮助。