您好,我将创建一个基于 Web 的聊天程序。
所有聊天都是私有(private)的,没有群组框。

我需要保留所有聊天记录。
我的想法是将所有消息推送到 mysql 数据库,然后每半秒检查一次该数据库是否有传入消息。

这是创建 Web 应用程序的最佳方式吗?该站点应支持 2000 个用户同时聊天。

也许有更好的选择?我见过人们谈论多个数据库、文本文件、TCP/IP (IRC) 和 SQL 的组合等。

最佳答案

MySQL 能够一次处理大量并发请求,但如何管理和维护数据库是一个重点。

完美维护和索引的表应该没有问题。保持表格的结构尽可能简单。就像是

+----------------+--------------+-----------------
|    from        |     to       |   message      |
+----------------+--------------+-----------------

而且,没有完美的方法来创建聊天程序。取决于许多其他因素,例如
  • 请求类型: AJAX 或 Comet 或 WebSocket
  • 应用程序编码: 没有垃圾编码,遵循多个设计模式之一的清洁 OO 代码
  • 缓存 :尽可能缓存大部分静态信息。
  • 数据归档或事务处理
  • 查询 你和消息一起取什么(可能是那些东西以前可以缓存。这些东西包括 namesavatar 等)
  • 关于mysql - 与数据库在线聊天 - 最快的方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12081373/

    10-16 07:43