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

客服QQ:3315713922

数据库的五大流言与五大预言

作者:课课家教育     来源: http://www.kokojia.com点击数:684发布时间: 2017-08-07 09:30:46

标签: 数据库NoSQL数据库设计

  NoSQL(NotOnlySQL),即非关系型的数据库,在近年来迅速发展。Google的BigTable和Amazon的Dynamo使用的就是NoSQL型数据库。然而,与许多流行词一样,NoSQL在大肆宣传后,许多荒谬的观点产生,有些流言将NoSQL过分夸大,甚至脱离实际。本文就将逐一粉碎其中最被广为认同的五个NoSQL流言。

 NoSQL(NotOnlySQL)

  流言1:NoSQL是新鲜事物

  从根本上说,NoSQL数据库系统的几大属性都不是出于关系模型,而关系模型首次揭露是在1970年Codd发布的文章中。

  那么,这是否就意味着在1970年之前不存在任何其它的数据库系统?不容争论的是,这些数据库却是真实存在,比如CODASYL系统,它显然不是关系型数据库;基于其主要属性,NoSQL的诞生其实明显早于传统关系型数据库。

  流言2:遗弃数据结构模型

  从长远上看,这个流言的影响更为恶劣。虽然许多NoSQL解决方案都不会强迫你使用严格的数据结构模型,但是绝对不意味它可以忽视。而在实际操作中也是恰恰相反的,随着时间的流逝,你必须明白你为什么要使用这些属性。

  有些情况可能会更加危险,举个MongoDB的例子:作为一个良好的实践,许多经验丰富的用户都会建议去建立文档的属性,在文档大小改变时,通过预分配大小去避免文档的完整拷贝。还有在查询优化时,你必须要清楚你的结构模型以便做索引。

  流言3:NoSQL的扩展性永远都是卓越的

  高扩展性是NoSQL的主要卖点之一,但是仅仅选择一个NoSQL解决方案并不意味着扩展性问题的解决,真正解决问题的是优秀的架构。

  不错,这里确实存在通过选择NoSQL让系统扩展性得到了大幅度的提升。然而胜利的背后依稀可见的是数据结构的变化,在特定场景下使用正确的结构替换错的。

  这个流言中有趣的地方是忽略了同样提供优秀扩展性的关系型数据库,不错,使用NoSQL方案进行扩展确实非常容易,但是NoSQL的选择绝对不是问题解决的唯一功臣。

  流言4:不公平的基准

  你如何才能公平的比较两个完全不同的持久化方案,比如:键值、关系、文档等等。而当下许多NoSQL与关系型数据库的对比也并不公平。

  当你的查询只涉及一个键时,NoSQL数据库的性能明显要优于关系型数据库。公平的基准应该建立在同类型产品的比较之上,类似MySQL与MongoDB的对比根本无任何意义。即使系统性能取得了巨大提升,也只是开始时使用了错误的数据结构模型而已。

  流言5:NoSQL可以大幅度的提高生产力

  这一点只发生在梦中,或者是开始选择了错误的工具。在选择NoSQL之前,我们已经使用了多年的关系型数据库,这里只存在团队花大量精力去适应NoSQL的情况。

  很少人谈及这一点,NoSQL采用最大的挑战是文化,而不是技术。新事物之所以难以接受,是因为“老伙计”用起来很舒服,即使新事物更加得优秀。生产力源于实践,而不是魔术。

  总之,对比近年来研发领域发生的事件,NoSQL绝对可以称得上最有意义之一;然而需要铭记的是,任何提升都需要付出同等的代价。

  看完了NoSQL数据库五大流言,下面我们来看一下数据库的五大预言!

  MichaelStonebraker是数据库领域的布道者。他对此领域了解很深,并帮助开发了一些最流行的数据库系统,包括Postgres、Ingres和Vertica。他最近的很多研究中的一项就是VoltDB,这是一个基于内存的OLTP(联机交易处理系统),他声称这项研究成果比传统方案要快两个数量级。

  不过,Stonebraker的意见多年来一直饱受争议,有人强烈支持,也有人强烈反对。例如,他在2011年说过,Facebook在MySQL上生不如死,于是遭到了快速猛烈的回击。

  单一模式不能包打天下

  “任何我可以想到的垂直市场,相比传统的关系型数据库系统,总会有一些更合适的解决方案。”Stonebraker如是说。

  事实上,这是他一贯的主张。但今时今日这一主张看起来更有说服力了。现在有用于数据分析的列存储架构,用于交易的内存架构,当然也有用于简单的键值操作及新数据类型的NoSQL架构。甚至图形数据库都开始步入商用。

  想证明这些新类型的数据库变得多么主流?Stonebraker说:“NoSQL数据系统就像奥巴马医改方案,争议激烈,但是正在运作。”

  数据库领域可以有很多赢家

  “将有3到5个,甚至6个非常不同的数据库系统架构成为赢家,而在每一类下都会有2到3个成功的供应商。”Stonebraker预测,“我的核心观点是,传统的关系型数据库系统将慢慢收缩,这一切转变也许需要十年。”

  NoSQL会被广泛接受

  “我的预测是NoSQL将意味着不止SQL。”Stonebraker说,“Cassandra和MongoDB已经宣布了类似这样的东西,如果你放下你的偏见,那么这种高级语言基本上就是SQL。”

  人们已经不那么看好单纯的底层语言的价值。Stonebraker认为NoSQL系统将来也要拥抱ACID。而这一切可能正在发生。

  “我认为历史上无ACID的NoSQL最大支持者是谷歌的JeffDean,基本上负责Google所有的数据库产品。最近,他编写了一个叫作Spanner的系统。”Stonebraker解释说:“Spanner是一个纯ACID系统。因此,谷歌也正在走向ACID。我认为NoSQL市场将走向ACID。”

  Oracle将感受到来自SAP的压力

  “我觉得另一个非常有趣的事是SAP在数据库领域还没有得到很多关注,现在SAP的客户同时也是Oracle最大的客户。”Stonebraker说:“在这些巨头中,Oracle和SAP会好好地干上一架。”

  现在说这个可能有点早了,我们也不知道SAP的客户将如何回应切换数据库的游说。不过Stonebraker补充说:“我的预期是,SAP会给客户一个信服的理由,让他们从Oracle迁移到HANA。”

  Facebook会继续寻找MySQL的替代品,不过可能劳而无功

  “Facebook面对的是这个星球上最难的数据管理问题之一。”Stonebraker说。“他们花了数年的时间尝试从MySQL迁移到别的系统,但是到目前为止还没有发现可以匹配他们规模的替代品。”

  相比几年前的观点,Stonebraker现在的主张已经有所缓和。可能这是因为Facebook分享了他们在MySQL上做的一些努力,包括为了维持MySQL系统的运行所作的精妙的配置。然而这一缓和,与其说是对MySQL的支持,不如说是对Facebook的数据库改造的认同。

  Stonebraker的总结一如既往的幽默:“传统的数据库销售商提供的产品,它们的代码基础和25年前一样,现在正让它们退休的时候了。”

  小编结语:

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

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