1

我正在开发一个高度动态并不断使用 MySQL 数据库的站点。我的问题是——我应该担心数据库的负载吗?
例如,网站的一部分有一个实时聊天,它使用 AJAX 每秒为每个用户联系数据库。根据连接的用户数量,有很多查询!

这是 MySQL 数据库可以处理的事情,还是我在推动它?谢谢。

4

1 回答 1

3

你实际上是在推动它。根据您的服务器和在线用户数,MySQL 在某些时候可以处理。

MySQL 和其他数据库管理系统是数据存储系统,而您实际上并不是在存储数据!您只是通过 MySQL 在客户端之间发送数据,效率不高。

但是为了加快速度,您可以将 MySQL 内存表用于即时消息,并将离线消息保存在另一个 MyISAM 或 InnoDB 表中(将存储数据)

但是拥有聊天基础设施的最佳方式是拥有一个后端应用程序,它将所有消息保存在内存中,并在一定的限制后将未收到的消息作为离线消息发送到 MySQL。这与 MySQL 内存表非常相似,但您将对数据有更多的控制权。这样做的问题是您需要实现具有良好内存管理的逻辑和高效的数据结构,如果您不做商业产品,这是一项非常艰巨的任务,如果您不考虑销售该聊天系统,那么这是一项不必要的任务,因此我建议使用 MySQL正如我所描述的内存表。

更新
Mysql 内存表是易失的(将在服务/服务器重启时重置),所以不要用于存储,仅用于在短时间内保存数据以用于即时消息。

于 2012-04-15T13:06:31.827 回答