使用php读取/写入负载平衡-mongodb vs mysql [关闭]

Posted

技术标签:

【中文标题】使用php读取/写入负载平衡-mongodb vs mysql [关闭]【英文标题】:Read / write load balancing with php - mongodb vs mysql [closed] 【发布时间】:2014-01-03 10:36:11 【问题描述】:

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

目前我有一个likesmysql 表,其中包含post_iduser_id,我在posts 表上有一个“缓存”计数器,其中包含喜欢的总数——到目前为止很简单。

将任何这些信息存储在 mongodb 中以减轻 mysql 的负载,我会以任何方式受益吗?

此刻,我点击赞,两个 mysql 查询运行 - 和 INSERT into likesUPDATE on posts。如果我处于大规模环境中的繁重读/写情况,那么最好的方法是什么?

提前致谢:)

【问题讨论】:

您是否考虑过使用 memcached 或类似的缓存计数器?它可以很容易地重新创建,音量很小并且很容易键入。 这与编程关系不大。 Database Administrators 页面可能更适合解决此类问题。 【参考方案1】:

MySQL 不是这样的好选择,因为大量写入会导致扩展问题。我相信 MongoDB 的真正优势是面向无模式 JSON 文档的存储,虽然它应该比 MySQL 性能更好(如果设置正确),我认为你应该考虑使用 Redis 来存储这样的计数器(The single INC command to increase a number value是蛋糕上的奶油)。根据我的经验,它可以比任何其他数据库更有效地处理写入。

【讨论】:

感谢您的回复,嗯,好吧,理想情况下,您是说考虑使用 Redis 而不是 Mongo 进行大量写入? @Tim 对于存储喜欢数量和喜欢每个项目的用户的特定目的,我认为 redis 效果最好。不过,它并不是一个用于存储更多相关数据的成熟数据库。

以上是关于使用php读取/写入负载平衡-mongodb vs mysql [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

PGPool II + Django w/ psycopg2 负载平衡

为什么 MongoDB (索引)使用B-树而 Mysql 使用 B+树

PHP中高级面试题 – 第三天

负载平衡集群中的 PHP 会话 - 怎么样?

VPC 中的 AWS beanstalk EC2 实例且没有负载平衡

Spring Data JPA:如何对 RDS Aurora PostgreSQL 实例之间的读取查询进行负载平衡?