mysql - 我应该担心 MySQL 数据库的负载吗?

标签 mysql database load

我正在开发一个高度动态且经常使用 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/

相关文章:

javascript - 如何检查img src是否加载

php - Mysql - 将行转换为列

mysql - 行级锁,或者读时锁

php - 如何选择即将到来的日期和时间的记录?

database - Wix:如何使用 SqlScript 创建数据库

php - 无法在 Windows xampp 中使用命令行导入任何 sql 文件

php - CSS 和 Bootstrap 在 laravel5.8 中不工作。我怎样才能解决这个问题?

mysql - 如何创建游标循环,使其循环 X 次,并与列中的数据连接

mongodb - NoSQL 最佳实践 : should I save derivative (calculated data) as it is used in app?

javascript - 使用加载文档的路径作为其相对路径的根而不是源文档的路径来加载 HTML