我正在考虑使用两个数据库之一- MySQL和MongoDB。我计划存储文本和数字数据,我将在RoR中构建我的应用程序。
所以我不知道,哪个数据库系统更适合这个目的,你能帮我吗,请,我将在哪个标准下决定?
让我把这个问题放在更一般的背景和一些历史的角度来看。
在60年代他们问是使用分层数据库还是网络数据库
70年代的争论是关于网络的
80年代关系型数据库变成了SQL数据库,所以问题变成了SQL vs.网络
在90年代是SQL对对象数据库
2000年是SQL对XML数据库
今天我们讲SQL和NoSQL
你看到其中的规律了吗?你还会把钱押在SQL的竞争对手身上吗,特别是如果它只不过是一个美化的哈希表?
我在我的项目中也使用了MySQL和MongoDB,我可以说,如果你想在数据库中保留二进制数据,如图像,mp3和其他东西,那么尝试Mongo,出于其他原因,你可以使用SQL数据库。MongoDB没有结构-你处理哈希,所以你可以动态地添加和删除键/列。
在你的情况下,我会使用MySQL
在我看来,您应该根据应用程序的目的做出决定。如果您想搜索您的文本数据,您将如何定义键。如果您必须请求每条记录并扫描它,那么使用MySQL就没什么用了。即使有功能做文本扫描在MySQL(它有吗?)MongoDB可能会更有效地完成这项工作。反过来说,如果你不打算使用MongoDB的优点,那么你不妨选择MySQL。
另一个因素可能是实现某事的最后期限。如果你需要快速学习,不要浪费时间去学习新东西。如果您有时间进行试验,请找出您在应用程序中最可能依赖的关键特性。
我认为,如果你需要一个硬结构,你应该使用MySQL,因为它不是它的性质,但如果你需要更动态的东西,没有结构(无模式)你应该使用MongoDB,我从来没有使用过MongoDB,但我知道它更面向对象/文档。
如果你能提供更多的细节就太好了。您的数据是否可以轻松地适应模式,还是需要文档存储提供的灵活性?那么自动分片呢?没有更多的信息,没有人能给你适合你需要的建议。如果没有这一点,你就不能指望得到比人们的个人偏好更好的反馈,这无异于一场火候。