Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将推送聊天信息保存到数据库中_Php_Mysql_Chat_Pusher - Fatal编程技术网

Php 将推送聊天信息保存到数据库中

Php 将推送聊天信息保存到数据库中,php,mysql,chat,pusher,Php,Mysql,Chat,Pusher,我正在使用推送服务构建一个聊天小部件(http://pusher.com)我需要将用户发送的所有消息保存到数据库中,以便在一段时间后可以访问。我使用的是mysql数据库,我想到的唯一方法是在每次触发聊天消息事件时进行一次新的插入,但我担心它不会像应该的那样快 在这种情况下,您希望使用什么数据库和技术来保存聊天信息?除非您计划创建一个包含数千人的聊天系统,否则我敢肯定一个结构合理的mysql解决方案可以解决这个问题。在我工作的地方,我们有一个基于php和mysql的intranet聊天解决方案,它

我正在使用推送服务构建一个聊天小部件(http://pusher.com)我需要将用户发送的所有消息保存到数据库中,以便在一段时间后可以访问。我使用的是mysql数据库,我想到的唯一方法是在每次触发聊天消息事件时进行一次新的插入,但我担心它不会像应该的那样快


在这种情况下,您希望使用什么数据库和技术来保存聊天信息?

除非您计划创建一个包含数千人的聊天系统,否则我敢肯定一个结构合理的mysql解决方案可以解决这个问题。在我工作的地方,我们有一个基于php和mysql的intranet聊天解决方案,它运行得非常完美(针对我们约100人的中型团队)

我的一个建议是确保您理解mysql索引。确保您的聊天系统真正充分利用了索引的潜力。这样可以大大提高性能

如果并发性真的成为您的一个问题,我听说很多人对node.js都有很好的体验。但是,如果您对php和mysql感到满意,我会说,先这样做


快乐编码

您可以采取的一种方法是使用MySQL的
INSERT DELAYED
。执行此操作时,客户端不必等待插入完成。相反,服务器将对插入进行排队并尽可能地执行它们。因此,处理聊天的进程/线程不必等待它们。但数据库中仍存储有聊天历史记录,可以检索。假设您使用pusher来共享“实时”消息,因此不需要立即访问聊天历史记录,这可能会对您有所帮助。

(我知道这很旧,但是,)这里有一个有趣的演示(尽管在Rails中),可以实现您所说的。它包括一个可能的模式。