使用SQL的即时消息聊天日志架构

时间:2014-12-08 23:13:59

标签: mysql sql sql-server

我正在为我的论坛创建一个即时消息系统,该系统拥有大约5,000名用户。到目前为止,我已经确定了如何将消息推送给用户(comet),我目前正在尝试确定在SQL数据库中存储消息的最佳方法。尽管SQL可能不是这类任务最有效的,但我会使用它,因为我对它有合理的了解。

进行大量研究后,包括:Best way to store chat messages in a database? 我发现存储聊天记录的两种主要方法是: 1)将每个单独的消息作为条目存储到具有其自己的单独行的数据库中,并且通过在聊天id索引中搜索特定id并且返回按其时间戳排序的所有结果来检索每个消息。 2)每个会话在数据库中都有自己的行,每次发送新消息时都会更新会话消息单元。要检索邮件,请在聊天ID索引中搜索特定ID,然后返回该特定聊天。

当用户重新加载网页时,从服务器的硬盘驱动器而不是缓存中检索聊天记录,因为服务器内存相对较小,因此低延迟很重要。我希望系统能够在系统需要重新评估之前处理大约100万条消息,以提高效率。

方法1能够处理这么多消息,延迟小于一秒,还是需要使用方法二?与其他方法相比,任何方法都有任何重要的优势吗?第2号方法是否仍能存储元数据?

谢谢:)

0 个答案:

没有答案