对于实时应用,MongoDB + Socket.io比MySQL + Socket.io更好吗?

问题描述 投票:2回答:3

我正在构建一个实时应用程序,我想知道我是否应该从MySQL迁移到MongoDB。我的应用程序发生了大量的写入,尽管读取案例仍然更高。我目前在客户端 - 服务器端使用XHR,但我也差不多要转移到Socket.io了。

我的研究确实让我想搬到MongoDB + Socket.io,但想从社区中得到一些想法。

更新我正在通过更快的应用程序定义'更好',如果这有任何意义。我有点能够没有sql,我想'。目前正在使用0 JOIN等。但我试图看看是否有任何人有从MySQL到MongoDB的任何经验,以获得“通用”实时应用程序。

谢谢。

php mysql mongodb real-time
3个回答
5
投票

这取决于你如何定义“更好”。

如果关系模型和集合对您来说更重要,那么MySQL比MongoDB“更好”。

如果你可以放弃ACID,并且你的数据更基于文档,那么MongoDB比MySQL更“好”。

在任何情况下都很难回答,尤其是在不了解您的用例的情况下。


3
投票

也许迟到了,但我已经有了一些从mySQL到mongodb的实时分析应用程序的经验。根据我的经验,mySQL速度更快,响应更快,因为我的应用程序非常糟糕。通过使用innodb,我能够获得行级锁定,而当我使用mongodb时,我不得不处理全局锁定。不确定他们是否已经解决了“全局”锁定问题。

我的最终解决方案是使用innodb和mySQL的Percona版本。


0
投票

MongoDB不是关系数据库管理系统。如果没有先指定数据显示真正缺乏知识,说MongoDB比任何RDBMS都要好。

MongoDB中不存在关键约束。没有参照完整性检查。我们使用MongoDB进行blob存储,并将MongoDB密钥存储在SQL Server中。它很棒,但我永远不会用MongoDB直接替换规范化的SQL Server或MySQL RDBMS实例。

也许很多人认为MongoDB更好,因为他们不想担心优化索引和执行计划......但这需要以数据完整性为代价。它是一种无模式结构,这意味着不存在一致性。它会吃任何你喂它的东西,这可能是危险的。

考虑在JSON中添加/删除属性或根据不断变化的业务规则添加/删除参考数据时会发生什么。想想与RDBMS实例相比,MongoDB中的转换会是什么样子。

我知道我对MongoDB非常批评,但我不是故意的。我们使用它并且它可以很好地满足我们的需求,但它不能替代RDBMS。更多的补充。

© www.soinside.com 2019 - 2024. All rights reserved.