2012-04-15 39 views
1

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

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

+0

是的,你一定应该担心它。它会处理它吗?没有人知道,甚至没有足够的细节来暗示这一点。 – Mat 2012-04-15 13:01:23

回答

3

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

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

但为了加快速度,你可以使用即时消息的MySQL内存表,并保持离线消息在其他的MyISAM和InnoDB表(将存储数据)

但是,最好的办法有一个聊天的基础设施有一个后端应用程序,它将所有消息保存在内存中,并在某些限制之后将未收到的消息作为离线消息发送到MySQL。这非常类似于MySQL内存表,但您将对数据有更多的控制权。与此相关的问题是,您需要实施具有良好内存管理的逻辑和高效的数据结构,如果您不在使用商业产品,这是一项非常艰巨的任务,如果您不想销售该聊天系统,则不必要,所以我建议使用MySQL内存表,如我所述。

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

+0

谢谢!我暂时停止了这种做法,我会研究MySQL内存表。再次感谢。 – 2012-04-15 13:19:31

+1

我刚刚添加了内存表的易失性信息,你也应该读一下。别客气 – 2012-04-15 13:20:27

相关问题