e、 假设我有一个聊天应用程序,我有一个线程表和一个消息表。线程具有消息数。例如。:
Thread
id: int
numMessages: int
Messages
threadId: int
content: text
我可以增加 numMessages
每次我插入一条消息或者我可以计算每次的消息数,以防万一 numMessages
不同步。但是,假设有大量的消息,我不想更新 thread
每次有新消息的时候,都是一张table。如果最终是一致的就没关系了。e、 g.我可以更新 numMessages
一分钟一次。其中一个原因是我可能有 threads
mysql/postgres中的表和 messages
cassandra/hbase中的表,它们更适合于高io。
然后,我需要知道哪些线程需要更新,因为我不想每分钟都更新每个线程。假设我有多个服务器连接到一个db集群,我想到了一些方法:
使用消息队列并在每次创建消息时发送消息。我需要延迟+重复数据消除,我认为rabbitmq/redis在默认情况下无法做到这一点。
在redis中存储一组需要更新的线程id。
编辑:3。在messages表中查询需要更新的线程。
有更好的方法吗?我知道这是过早的优化,但我想学习如何正确地做它。
暂无答案!
目前还没有任何答案,快来回答吧!