如果我为应用程序中的所有收件箱邮件创建一个数据库表,它会随着时间的推移而变慢吗?

时间:2014-04-12 22:42:55

标签: sql-server sql-server-2008-r2

我在SQL Server 2008R2中创建了一个表来将所有发送接收消息存储在应用程序中,因此所有聊天消息都将存储在该单个表中供所有用户使用。随着时间的推移会变得缓慢,因为会有很多用户的记录。处理这个问题的最佳方法是什么?另外,对于您的信息,我在.net。

中使用了SQL Server的实体框架技术

2 个答案:

答案 0 :(得分:0)

可能,是的,它可能会变慢。

实际上 - 如果您使用索引并且在表中具有100M行(或更少),则对于正常操作(例如,向用户显示最近发送的消息等)应该不是很大。在这种情况下,特别需要dateuserId字段的索引。

以下是有关如何使用索引的一些详细信息:http://technet.microsoft.com/en-us/library/ms188783.aspx

答案 1 :(得分:0)

您在这里谈论聊天消息,这让我觉得您不是在谈论电子邮件,通常有发件人和一个或多个接收者。

然后,我会建议您添加聊天会话'表,其中每个聊天将使用唯一标识符进行标识。然后,所有聊天消息都会有一个chatId字段,因此您可以轻松找到聊天会话期间发送的所有消息。

然后可以从您的消息表中检索与您的聊天相关的其他相关信息,例如:

  • 谁在聊天中(按userId分组,用于chatId =)
  • 聊天开始的时间(messageTime的最小值)

只要表格被正确编入索引,并且您的硬件设置为满足您的数据库需求,您的数据库 就不会 变慢。

无论如何,这绝对是处理这种情况的最好方法。