在Application变量或DB中保存聊天室数据,哪里更好?

时间:2010-11-04 00:16:57

标签: asp.net asp.net-mvc asp.net-mvc-2 asp.net-ajax

我的应用程序是 Web App聊天室,它支持以下功能:

1.Create / Join / Close room
2.在房间内发送消息(只是实时消息,将来可能会支持离线消息)

我已经完成了应用程序的逻辑,但我正在考虑在哪里保存聊天室数据(消息,房间信息和房间内的用户)?我看到有两个选项:

1。申请变量
2。使用文件或数据库

- 如果我保存在应用程序变量中,该怎么办: 如果有2000个房间和10000个在线用户,意味着我必须持久存在应用程序变量(实际上在RAM内存中)2000个房间的信息,超过10000个消息(文本),如果有更多的话,这些数字可能会增加第二个用户在线实时。什么是下一个?我不知道服务器会发生什么,崩溃?或我的网络应用程序将被终止?无论我不想要两个结果!

- 如果我保存在文件或数据库(即:SQL Server DB)中,该怎么办? 由于Web应用程序,客户端必须每1秒发送一次请求以获取数据(房间中的消息和用户列表)。因此,如果有2000个房间和10000个在线用户,则意味着他们每1秒向DB发出10000个请求。我不知道DB会发生什么,有很多连接,并且在每一秒钟内,DB仍然可以处于服务请求状态吗?

我不知道拯救现在哪里好,因为两者似乎都是不好的解决方案:(。您有什么看法?请给我一些想法吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

数据库就是为此而制作的,它可以提供大量的请求,写入和读取数据...它们具有良好的优化性能,而不是写下你知道的所有内容,它们使用缓存和内存来制作你说的内容。

我说使用数据库,只需要注意做好表格的设计。 :)并不时从您的房间删除旧的和未使用的数据。