我们有一个托管近 10000 个域的电子邮件服务,因此我们将消息的标头存储在 SQL Server 数据库中。
我需要实现一个在消息正文中搜索关键字的应用程序。消息作为文件存储在 NAS 存储系统上。
作为概念证明,我实现了一个基于 SQL 服务器的搜索系统,我将解析消息并将所有单词与成员 ID 和消息 ID 一起存储在数据库表中。该数据库位于标头数据库的单独服务器上。
该系统的问题在于,在仅处理一个域上的消息后,我最终得到了一个包含 6 亿行的表。显然,这不是一个非常可扩展的解决方案。
由于标头存储在 SQL Server 表中,因此我需要将搜索应用程序中的 messageID 连接到标头表中,以显示包含搜索关键字的消息。
关于更好的架构的任何建议?使用 SQL Server 有更好的选择吗?我们每天收到超过 2000 万条消息。我们是一家小公司,在服务器、维护等方面资源有限。
谢谢