2012-05-20 77 views
12

我已经与MySQL超过MongoDB的工作,但是从我从MongoDB中了解到这正是我需要的,但它也有它的局限性是,MySQL可以做(例如自动递增)使用MySQL和MongoDB一起

使用MongoDB处理所有事情,使用MySQL仅用于某些事情会很明智吗?

例如使用MongoDB来存储用户和其他一切,但使用MySQL来制作例如票据系统。

+0

这取决于工作。例如,自动递增不足以让我添加另一个数据库。但是,如果你需要它们,有两个不同的dbs根本就没有什么问题。 – joshp

+0

是的,我不仅仅是在使用它,我只是举了一个例子。谢谢。 – unlucky4ever

回答

15

在一个项目中使用两种数据库技术听起来非常合理。只要确保你使用正确的工具来完成这项工作。

使用MySQL作为主存储和MongoDB作为高速缓存/中间存储是很常见的。

例如,您可以在MongoDB中具有读取密集型数据。用于生成报告的数据对于像MySQL这样的关系系统来说是完美的。

+0

使用两个不同的数据库是否很常见? – unlucky4ever

+0

两种不同类型的数据库,例如一个面向对象和一个关系... – aleroot

+0

谢谢,我现在知道我应该使用MySQL作为我的主数据库,并使用MongoDB的其他东西,我会开始转换我的应用程序:)(不要担心它很小) – unlucky4ever

4

关于MongoDB的主要使用情况MongoDB site有很好的讨论。一般来说,如果您的商业案例包含对交易和繁重的T-SQL功能的需求,那么您最好通过使用诸如MySQL的RDBMS来提供服务。是

MongoDB的良好的使用案例如下: 1)你的数据是一种文档格式,即在单一文件不规则结构(即数据并不需要连接) 2)您使用的是考虑平面文件系统(同样是由于您的数据结构),但您希望在索引/查询数据的能力方面“更多”。 3)您的项目处于您真正不知道数据的模式或结构最终会如何的状态。 4)您有专门的数据类型,例如地理空间数据,并且您希望能够对其进行查询。 5)您可能需要快速便宜地扩展数据存储位置。

+0

只想说第3点不一定是Mongo的一个好用例。我想说MySQL在这种情况下会好很多。虽然如果你不知道你的数据库需要看起来像什么,那么在你做之前不应该开始开发你的项目。 –

+0

@JohnHarding不是那么简单。我发现自己处于一个模型不能完全描述的项目中,并且需要不断更新。在这种情况下,我发现Mongo更容易处理。 –

2

这里是MongoDB的使用情况的良好类型的讨论中,有人谁了MongoDB的课程

Considerations for choosing or not choosing MongoDB

的博客主要就是在说使用的MongoDB与其他数据库系统是完全没有问题的,但使用它全系统,在某些特定情况下可能是最具挑战性的,几乎不可能的。

这里有一些字幕:

理由选择蒙戈在火 - 和 -

  • 面向文档和无模式
  • 横向扩展和高可用性
  • 快速写入忘记模式
  • 综合查询和Aggre gation框架
  • 相比较直观的架构

理由不选择蒙戈

  • 没有SQL =没有加入
  • 没有ACID事务
  • 你的索引将不会装入内存