下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

MySQL还是NoSQL?

作者:课课家教育     来源: http://www.kokojia.com点击数:1607发布时间: 2019-02-25 09:11:38

标签: 数据库MySQLNoSQL

  开源数据领域被分成了两派,NoSQL狂热支持者喜欢发表长篇大论批评关系型数据库的局限性,MySQL爱好者则固执地捍卫关系型数据库——坚持让数据整齐地存放在表中。

开源数据领域被分成了两派,NoSQL狂热支持者喜欢发表长篇大论批评关系型数据库的局限性,MySQL爱好者则固执地捍卫关系型数据库——坚持让数据整齐地存放在表中。

  你肯定会认为这两方决不可能和睦相处,但事实上,成千上万的公司一直都在努力将关系型和非关系型数据库结合起来,而且很多年前就有这样的尝试了。

  但新技术的发展往往和过去的技术对立。当NoSQL发展起来时,光这个名字听起来就像是要宣告关系数据库的终结,但这是不可能的,至少不会这么快。

  前段时间,笔者采访了多家企业的技术人员,发现目前国内的科技公司几乎都在使用MySQL。按理说,在NoSQL的关系型数据库死亡名单上,MySQL早应该优雅的退出来,或者是像IBMDB2狼狈退出。而现在,MySQL混得风生水起,尽管比Oracle的时间少了近二十年,但是其在市场上的受欢迎程度与Oracle旗鼓相当,且Oracle的欢迎度一直在走下坡路,而MySQL则相对稳定。到底是什么原因让MySQL稳坐霸主地位不动摇呢?下面我们就来剥丝抽茧看看原因。

  虽然MySQL和Oracle在内行人看来都是不是尽善尽美的,但是根据DB-Engines的调查,MySQL的受欢迎程度仅次于Oracle,而且二者差距非常小。

 虽然MySQL和Oracle在内行人看来都是不是尽善尽美的,但是根据DB-Engines的调查,MySQL的受欢迎程度仅次于Oracle,而且二者差距非常小。

  下图是Oracle、MySQL和SQLServer三者的受欢迎程度,我们可以看出只有MySQL保持着上升的趋势。

 下图是Oracle、MySQL和SQLServer三者的受欢迎程度,我们可以看出只有MySQL保持着上升的趋势。

  虽然我们看到MySQL的搜索热度正在下降,但是与此同时Oracle和SQLServer的热度也在下降,而由StackOverflow调查的专业热度,MySQL保持相对稳定,而且与其它数据库相比占据绝对优势。

 虽然我们看到MySQL的搜索热度正在下降,但是与此同时Oracle和SQLServer的热度也在下降,而由StackOverflow调查的专业热度,MySQL保持相对稳定,而且与其它数据库相比占据绝对优势。

  NoSQL在现代企业中焕发了勃勃生机,因为企业都在努力管理数据的数量、速度和多样性。但是,让人意外的是,MySQL并没有按照NoSQL的剧本走下去,不仅幸存下来,还茁壮成长。

  MongoDB是NoSQL中成绩亮眼的一员,截止到现在,MongoDB今年的收入可能已超1亿美元,今年极其有可能IPO。

  然而MongoDB并没有推翻MySQL,当然ApacheCassandra和ApacheHadoop也没有做到。MySQLq前运营商ZackUrlocker曾表示:“MongoDB,Cassandra和Hadoop都有各自的专门用例,这些用例足以让它们支持一些收益不错的企业用例,但是做不到像关系型数据库那样普遍。当然还有一部分原因是在于目前大数据的性质,本质上来讲现在的大数据还是事务性的,所以非常适合RDBMS。

  当然MySQL受欢迎的核心还是在于它本身就是一款非常好的数据库,适合最广泛的数据库专业人员的技能。Oracle、DB2、SQLServer技术人员学习到的技能在MySQL中也能应用。

  实际上,对于MySQL以及所有关系型数据库的正确说法应该是扩张而不是出局。Linux基金会执行长克里斯Aniszczyk也肯定了这一说法,虽然这可能需要从架构的弱点来入手,但是像谷歌和Facebook这样巨头公司的工程师却对此充满了热情和信心。MySQL作为关系型数据库的典型代表,Pivotal副总裁JamesBayer对此给予了充分的信任,认为MySQL对于严苛的工作负载来说会是很好的选择。

  当然,这并不是说MySQL在Scale方面是最大赢家。正如Compose.io开发商DJWalker-Morgan所说:“NoSQL负责缩放,像我们的生活一样,有时会大吃一顿,有时却要节食减肥,所以只有严格的纪律和谨慎的管理才能适用。”其次,拥有足够多的用例,开发人员才有动力尝试,社区对于DBA来说也是很大的影响因素。ServerDensityCEODavidMytton强调:我们都想要RDS这样的服务,Aurora解决了MySQL的很多痛点。

  这也就是为什么MySQL在面世21年后(1996年MySQL1.0发布)成为地球上最受欢迎的数据库。它没有像Oracle一样贴上“企业级”的标签,也没有像NoSQL以“定制化”为标签来进行营销,但它就是成为了现代开发者的首选数据库。

  “免费”、“强大”、“成熟”,这三点就足以使得MySQL站在数据库领域的顶峰,笑傲江湖。

  基于以上内容,您认为我们应该选择其中一个?还是两者都要?

  应用程序是否应该与关系型数据库或NoSQL(也许是两者)相一致,当然,这得基于被生成或被检索数据的性质。和大多数科技领域的事物一样,做决定时要折中考虑。

  如果规模和性能比24小时的数据一致性更重要,那NoSQL是一个理想的选择(NoSQL依赖于BASE模型——基本可用、软状态、最终一致性)。

  但如果要保证到“始终一致”,尤其是对于机密信息和财务信息,那么MySQL很可能是最优的选择(MySQL依赖于ACID模型——原子性、一致性、独立性和耐久性)。

  作为开源数据库,无论是关系型数据库还是非关系型数据库都在不断成熟,我们可以期待还会有一大批基于ACID和BASE模型的新应用产生。

  暂且把它称为混合方案。有时这些应用程序的设计需要认真地权衡利弊,有时还能意外的得到发展,做出一系列调整以适应不断变化的数据需求,毕竟,谁能预测到今天社会共享数据的大规模增加(即使是在五年前)?

  像往常一样,开发人员处于这种创新的最前沿,他们促使托管服务提供商将这两个数据领域结合到一起。在必要时候,他们还会对开源数据技术进行修正。

  比如,在Oracle占有了MySQL后,MySQL有闭源的风险,基于MySQL的MariaDB很好的替代了MySQL。开发者社区要求其开源工具完全透明,包括开放对测试用例bug修复的权限。

  此混合方案在2014年将继续发展,托管公司也会提供更好的支持。在媒体上,我们就不会再说“要么关系型数据库,要么非关系型数据库”这样的话了。

  这和混合云领域所用方法是类似的。专用硬件有着优越的性能,而公共云有很好的可扩展性,结合两者优点可以带来更大的灵活性,产生最合适的解决方案,这才是解决问题的最优办法。

  毕竟,数据收集和解释的最终目标是捕获这个瞬息万变世界发生的每一条信息。数据,无论来自何处,都只是一个窗口,真正重要的是透过这个窗口看到的景象。

  小编结语:

  更多内容尽在课课家教育!

赞(23)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程