我应该使用mySQL还是MongoDB?

7
目前有很多关于NoSQL的讨论,据我了解MongoDB就是其中之一。对我来说,NoSQL似乎不同于我们所知道的MySQL。
可以这样理解,它们两者都存储数据,但一个是通过固定数据库进行存储,而另一个则在认为存储数据的时机最佳时存储数据,而且很可能没有或只有极少的限制。
然而,对于正在转换或正在考虑转换的Web开发人员来说,这很令人困惑。就我个人而言,我在一家大型电信公司工作,这种转换是需要认真考虑的,我们不能依赖于没有实体的东西。
也许我没有理解NoSQL的含义,也许我已经理解了含义。
我目前正在重新编写我们使用的整个CMS,如果我应该花时间看看NoSQL还是继续使用MySQL(目前似乎没有任何问题),那会非常好。
我们客户详情中只有5000行,在备份中有14000行,备份只是为了防止主表出现故障。

6
不要改变一个成功的团队。 - milan
1
5000行?你可以在Excel中保存它。在你所述的情况下,完全没有理由用MongoDB替换MySQL。 - ceejayoz
1
是的,我明白5000不是一个很大的表,因为我们会持续监控并每周删除大量数据。 - RussellHarrower
3个回答

11
你被迫选择一个还是另一个吗?如果没有,为什么要通过只做“这个”或只做“那个”来限制解决业务需求的潜在解决方案。我将软件工程的工作流步骤与医生的步骤相提并论。
医生必须做出许多决策,以确保手术成功进行。这包括诊断、确定切口点以及选择其行业所需的必要工具; 外科手术刀、骨钻等等,以完成手术。如果你告诉医生他们只能使用弩进行手术,结果对于患者或医生来说都不会很好(医疗事故)。
因此,放弃这个笨拙的比喻,以下是我选择同时使用两者的原因(以在线书店为例):
- 书籍数据,例如ISBN、作者名字、出版日期等存储在RDBMS中(假设是MySQL)。将这种类型的数据存储在MySQL中,我可以运行任意数量的查询呈现给用户。例如,我可以运行一个查询,返回所有由姓氏以字母Z开头的作者出版于2005年,并按ISBN降序排序的书籍列表。当为公司(或客户)创建有用的功能时,这种数据操作至关重要。 - 书籍资源,例如封面艺术品,使用NoSQL解决方案存储在文件系统中。这解决了两个问题。首先,我不想让容量庞大的数据膨胀我的MySQL数据库(二进制大对象),因此我会将这些数据存储在文件系统中。其次,一本书的封面艺术与任何实际的书籍数据无关(人们真的会希望所有封面艺术都是蓝色的吗?)。我们不能放弃一本书的封面艺术,因为在用户浏览在线库存时,它可能成败于销售。
最后,我的建议是选择并使用所有需要成功完成手术的工具,并以使添加新功能变得容易的方式进行操作。

1
这是我认为最好的答案。“NoSQL”可能正确地意味着“这个数据库中没有SQL,孩子”,但从系统的角度来看,更好的解释是“不仅仅是SQL”。 - fool4jesus

3

有了这样的数据,MySQL不是问题。NoSQL数据库设计用于大型数据集,并且设计非常不同(您可以在NoSQL中做的所有事情也可以在SQL数据库中完成)。

此外,NoSQL更难管理。如果没有正确配置,Cassandra需要比普通MySQL数据库更快,否则它会慢得多(即使这样,您也可能遇到一些问题)。对于大多数NoSQL,您需要VPS /专用托管。


1
即使如此,如果我真的不需要这个更改,我也不会更改数据库。你会浪费时间,获得(可能)少量的速度提升,并且(很可能)将不得不与管理数据库作斗争。MySQL没有这样的问题-不要制造额外的问题。 - therealszaka
3
我们都应该有一个特别的人或物品当做"人质":D - AO_

1

非关系型数据库值得一些评估,但它们适合的是一些特定领域,而不是拥有5,000行的CMS。

我认为你应该坚持使用适当的关系型SQL数据库。你可能会发现PosgreSQL比MySQL更好的免费选择,但你需要自己进行评估1

1有各种资源可以供您参考,例如:http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL


大家都在谈论的MySQL限制是什么? - RussellHarrower
@RussellHarrower MySQL有许多限制,就像任何关系型数据库管理系统一样(即使Oracle也有限制)。您需要评估MySQL能否满足您的要求。请查看我的链接文章,特别是关于性能和ACID兼容性方面(PostgreSQL与MySQL的各种存储引擎比较)。 - ta.speot.is
这取决于您选择的存储引擎,但通常您可以拥有比15k更多的行,而且性能仍然应该很好。如果不是这样,您可能仍然可以通过索引等方式来加速它。 - therealszaka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接