连续更新数据库而不会使服务器过载

时间:2016-10-08 17:02:44

标签: database multithreading

我必须保持我的数据库中某些记录的排名,这些记录会在最后一次交互时改变家属。

Post
______________
Id    
Content
LastAccessTime
LastRankedTime
Rank

我正在考虑定期访问数据库,并使用LastRankedTime获取所有帖子> 15分钟

然后在将每个项目全部写回DB

之前对每个项目应用Rank()

如果我必须对> 10.000条记录进行排名,我是否必须担心长排名计算或重读/写重载我的服务器/数据库?

解决这个问题的更好方法是什么? 每个Db访问记录数量有限的限制线程如何帮助?

2 个答案:

答案 0 :(得分:1)

根据您使用的数据库,可以有多个数据库节点,您可以想到集群数据库。

您只能在一个节点中写入数据。这将没有表中的索引。这使得插入更快。你不读这个节点。

同时,另一个节点仅用于读取目的,并且为了更快的搜索而进行了大量索引。

第一个节点将定期将数据同步/复制到其他节点。您可以配置此类同步的间隔。这是标准方法,通常在流量较大的大型架构中遵循。

答案 1 :(得分:-1)

在您使用它的列上创建索引将正常工作