我正在开发一个高度动态且经常使用 MySQL 数据库的网站。我的问题是 - 我应该担心数据库的负载吗?
例如,网站的一部分有一个实时聊天,它使用 AJAX 每秒为每个用户联系数据库。根据连接的用户数量,会有很多查询!
这是 MySQL 数据库可以处理的事情,还是我在插入它?谢谢。
最佳答案
你实际上是在插入它。取决于您的服务器和在线用户数,MySQL 在某些时候可以处理。
MySQL和其他数据库管理系统是数据存储系统,你实际上并不是在存储数据!您只是通过 MySQL 在客户端之间发送数据,效率不高。
但是为了加快处理速度,您可以使用 MySQL 内存表来处理即时消息,并将离线消息保存在另一个 MyISAM 或 InnoDB 表(将存储数据)中
但拥有聊天基础设施的最佳方式是拥有一个后端应用程序,它将所有消息保存在内存中,并在一定限制后将未收到的消息作为离线消息发送到 MySQL。这与 MySQL 内存表非常相似,但您可以更好地控制数据。这样做的问题是您需要通过良好的内存管理实现逻辑高效的数据结构,如果您不做商业产品,这是一项非常艰巨的任务,如果您不考虑销售该聊天系统,则没有必要,所以我建议使用 MySQL如我所描述的内存表。
更新
Mysql Memory Tables 是 volatile 的(将在服务/服务器重启时重置),因此不要将其用于存储,仅用于即时消息的短时间内保留数据。
关于mysql - 我应该担心 MySQL 数据库的负载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10162224/