我正在考虑使用两个数据库中的一个 - MySQL和MongoDB。我打算存储文本和数字数据,我将在RoR中构建我的应用程序。
所以我不知道,哪个数据库系统可以更好地用于此目的 - 请你帮助我,根据我将决定哪个标准?
答案 0 :(得分:12)
让我把这个问题放在更一般的环境和一些历史的视角中。
在60年代,他们在询问是否使用分层数据库或网络数据库
在70年代,辩论是与网络的关系
在80年代,Relational变成了SQL数据库,所以问题变成了SQL与网络
在90年代,它是针对对象数据库的SQL
在00年代,它是针对XML数据库的SQL
今天我们有SQL与NoSQL
你在这看到一个模式吗?你还会赌一些钱给SQL竞争对手,特别是如果它只不过是美化哈希表吗?
答案 1 :(得分:4)
我在我的项目中也使用了MySQL和MongoDB与Mongoid,我可以说如果你想保留数据库中的图像,mp3和其他东西等二进制数据,那么试试Mongo,由于其他原因你可以使用SQL数据库。 MongoDB没有结构 - 您处理哈希,因此您可以动态添加和删除键/列 在你的情况下,我会使用MySQL。
答案 2 :(得分:2)
在我看来,您应该根据申请的目的做出决定。是否要搜索文本数据,如何定义键。如果您必须请求每条记录并进行扫描,那么使用MySQL几乎没有用处。即使有功能在MySQL中进行文本扫描(它有吗?)MongoDB可能会更有效地完成工作。反过来说,如果你不打算使用MongoDB的强点那么你也可以选择MySQL。
另一个因素可能是实施某事的截止日期。如果你需要快速,不要浪费时间学习新东西。如果您有时间进行实验,请找出您在应用程序中最可能依赖的主要功能。
答案 3 :(得分:1)
我认为,如果你需要一个硬结构,你应该使用MySQL,因为它不是它的本质,但如果你需要更动态的东西,根本没有结构(无架构)你应该使用MongoDB,我从来没有使用MongoDB,但我知道它更像是面向对象/文档。
答案 4 :(得分:1)
如果您能提供更多细节,将会有所帮助。您的数据是否可以轻松地适应模式,还是需要文档存储提供的灵活性?那么自动分片等呢?没有更多信息,没有人可以为您提供符合您需求的建议。缺乏这一点,你不能希望得到比人们的个人喜好更好的反馈,这只不过是等待发生的火焰。