在一个项目中同时使用Mongodb和Mysql

时间:2011-06-27 22:22:54

标签: mysql mongodb geolocation

我一直在努力学习Mongodb一周,以便用于我的项目。在我的项目中,我将存储一个巨大的地理位置数据,我认为Mongodb最适合存储这些信息。另外,速度对我来说非常重要,Mongodb的响应速度比Mysql快。

但是,我会对项目的某些部分使用一些连接,我不确定是否将用户信息存储在Mongodb中。我听说在写作过程中mongodb可能会出现一些问题。我应该只使用mongodb与集合(而不是join)或两者兼而有?

3 个答案:

答案 0 :(得分:3)

你不会在MongoDB和MySQL之间加入。

我不确定我是否同意你的所有陈述。相对速度最适合您的用例。

您真正需要了解的是两个数据库的相对优势和劣势:

  • MySQL支持关系模型,集合和ACID; MongoDB没有。
  • MongoDB更适合基于文档的问题,可以放弃ACID和交易。

这些应该是您选择的基础。

答案 1 :(得分:3)

在大多数情况下,如果项目不是很大,我建议为项目选择一个数据库。对于非常大的项目(或一般的企业),I think长期组织将使用

的组合
  • 用于高度事务性OLTP的RDBMS
  • 的NoSQL
  • 数据仓库/ BI项目

但是对于更合理的范围,只需选择一个用例的核心,并将其用于所有内容。

将用户数据存储在mongodb中的IMO很好 - 你可以对单个BSON文档进行原子操作,因此像“以原子方式为我分配这个用户名”这样的操作是可行的。使用重做日志(--journal)(v1.8 +),复制,slavedelayed复制,可以获得相当高的数据安全性 - 与纸上的其他数据库产品一样高。反对安全的主要论点是产品是新旧软件总是更安全。

如果您需要执行非常复杂的ACID事务(例如会计),请使用RDBMS。

此外,如果您需要进行大量报告,目前mysql可能会更好,特别是如果数据集适合一台服务器。 SQL GROUP BY语句功能非常强大。

答案 2 :(得分:1)

MongoDB有一些很好的功能来支持地理位置工作。然而,它不一定比MySQL更快开箱即用。已经有很多基准测试表明MySQL在很多情况下都优于MongoDB(例如http://mysqlha.blogspot.com/2010/09/mysql-versus-mongodb-yet-another-silly.html)。

话虽如此,我还没有遇到MongoDB在写作过程中丢失信息的问题。我建议如果你想使用MongoDB,你也可以为用户使用if,这样可以避免必须跨数据库'关联',然后只有在必要时才将用户迁移到MySQL。