Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.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实现读/写负载平衡-mongodb与mysql_Php_Mysql_Sql_Mongodb_Caching - Fatal编程技术网

使用php实现读/写负载平衡-mongodb与mysql

使用php实现读/写负载平衡-mongodb与mysql,php,mysql,sql,mongodb,caching,Php,Mysql,Sql,Mongodb,Caching,我有一个用户可以“喜欢”内容的系统。可能会有数百个这样的事情同时发生。我希望它是AJAX驱动的,这样您就可以立即得到响应 目前,我有一个mysql表likes,其中包含post\u id和user\u id,我在posts表上有一个“缓存”计数器,其中包含了likes的总数-到目前为止很简单 在mongodb中存储这些信息以减轻mysql的负担,我会从中受益吗 现在,我单击like,运行两个mysql查询,并将其插入likes和一个posts更新。如果我处在一个大规模环境中,读/写能力很强,那么

我有一个用户可以“喜欢”内容的系统。可能会有数百个这样的事情同时发生。我希望它是AJAX驱动的,这样您就可以立即得到响应

目前,我有一个mysql表
likes
,其中包含
post\u id
user\u id
,我在
posts
表上有一个“缓存”计数器,其中包含了likes的总数-到目前为止很简单

在mongodb中存储这些信息以减轻mysql的负担,我会从中受益吗

现在,我单击like,运行两个mysql查询,并将其插入likes和一个posts更新。如果我处在一个大规模环境中,读/写能力很强,那么最好的方法是什么


提前感谢:)

MySQL对于类似的东西不是一个好的选择,因为大量的写操作会导致伸缩问题。我相信MongoDB的真正优势是无模式的JSON面向文档的存储,虽然它的性能应该比MySQL好(如果设置正确的话),但我认为您应该考虑使用Redis来存储这样的计数器(增加数值的单个INC命令是最棒的)。根据我的经验,它可以比任何其他数据库更有效地处理写操作

您是否考虑过对缓存计数器使用memcached或类似工具?它可以很容易地重新创建,体积小,并且容易设置密钥。这与编程无关。对于这样的问题,该页面可能是一个更好的地方。谢谢你的回答,嗯,好吧,那么理想情况下,你是说使用Redis而不是Mongo来进行大量写入?@Tim为了存储喜欢的数量和喜欢每个项目的用户,我认为Redis工作得最好。不过,它并不是一个用于存储更多相关数据的成熟数据库。