对 php 聊天应用程序过多的 mysql (ajax) 请求有啥负面影响?

Posted

技术标签:

【中文标题】对 php 聊天应用程序过多的 mysql (ajax) 请求有啥负面影响?【英文标题】:what are the negative impacts of too many mysql (ajax) requests for a php chat application?对 php 聊天应用程序过多的 mysql (ajax) 请求有什么负面影响? 【发布时间】:2011-07-22 14:48:06 【问题描述】:

您好,我创建了一个简单的 php/mysql/Ajax 聊天应用程序,我有几个问题。在此之前,让我解释一下它是如何工作的。

因此,如果用户在聊天页面上,ajax 脚本会向显示聊天历史记录(最新消息)的 php 文件发送请求,并以 html 格式返回。此请求每秒循环一次,以向查看页面的用户显示最新消息。

到目前为止,它工作得很好。

现在我的问题和担忧是,1.) 如果有的话,使用这样的方法有什么缺点? 2.) 如果它拥有庞大的用户群并且很多人同时使用它,我最应该担心什么? (主要是因为它每秒都会为每个用户发出请求..)

mysql 表是一个 innodb 表,我只使用了一个没有 WHERE 子句的 SELECT 语句.. 类似SELECT * FROM table ORDER BY id DESC LIMIT 10 等。(基本上,我正在让 mysql 做一些非常简单的事情,比如蛋糕)

3.) 欢迎提出任何建议;)

非常感谢 维卡什

【问题讨论】:

【参考方案1】:

当然,您需要同时考虑 Web 服务器和数据库服务器的可伸缩性问题。有一些技术,例如用于提高数据库性能的 MySQL 集群和用于 HTTP 端的 Web 集群。

在大规模使用时,您还可以考虑通过删除早期帖子并将它们转储到单独的表格以进行低频访问来精简表格。您还可以通过一些工作线程来缓存数据库请求,这样数据库读取量就会最小,但前端将有能力应对大量请求。

【讨论】:

【参考方案2】:

我在 phpFreeChat(php/ajax/mysql 聊天)中有 60 人,它是一个完整的处理器。它让一台 8 核服务器瘫痪。

【讨论】:

以上是关于对 php 聊天应用程序过多的 mysql (ajax) 请求有啥负面影响?的主要内容,如果未能解决你的问题,请参考以下文章

高逼格开源聊天系统 推荐 Spring+Netty+Websocket实现

如何使用 mvc spring 将 JSON 数组插入 MySQL

开源Netty仿微信聊天Web应用,项目更新

开源项目——小Q聊天机器人V1.4

SpringMVC+Spring+Mybatis(SSM~Demo)

SpringMVC+Spring+Mybatis(SSM~Demo)