专栏名称: CSDN
CSDN精彩内容每日推荐。我们关注IT产品研发背后的那些人、技术和故事。
目录
相关文章推荐
51好读  ›  专栏  ›  CSDN

MongoDB大中华区首席架构师唐建法:关系型数据库到MongoDB的战略迁移

CSDN  · 公众号  · 科技媒体  · 2017-03-14 15:41

正文

请到「今天看啥」查看全文


唐建法: 我是一个多年的开源软件受惠者和贡献者。第一次接触纯属偶然,那是在2011年,彼时我还在旧金山和几个朋友创业。有一天无意中走进了MongoDB主办的一个技术大会,抱着试一试的心态,我把代码迁移到Mongo上来解决困扰我们许久的MySQL性能问题。性能问题确实解决了,但是真正打动我的却是使用JSON格式来管理数据这一焕然一新的概念和非常直观的持久化API。数据还可以这么玩!


CSDN:能否以MongoDB为例,对比分析NoSQL与关系型数据库,简要谈一谈其各有什么优缺点及适用场景?


唐建法: 这里有一张图可以帮助大家从3万尺高空来理解两者的大致区别。



图左侧是关系型数据库的一些共性。Oracle、SQLServer、MySQL诸如此类的关系型数据库的优势就是他们使用的SQL查询语句功能非常强大,表达力很丰富。无论多复杂的问题,基本上都能够用一个或几个SQL语句完成。关系型数据库的ACID事务性,虽然各个数据库支持力度不同,但是总体来说都有不错的能力和应用程序服务器配合为程序员提供较好的事务模型,保证数据库内数据及规则的一致性。而以MongoDB领头的NoSQL数据库阵营中,则以动态数据模式和横向扩展能力为主打利器,是针对于现代的数据问题提出的解决方案。动态或者可变模式是处理新一代多变多态数据的最重要能力,否则技术团队将沦陷于无休止的关系型模式设计、迭代、数据迁移的繁琐工作中。横向扩展能力则是百度云、京东、360等大型互联网公司从MySQL集群迁移到MongoDB的主要诱因:MongoDB的分片技术,借助于数据相对独立,容易分布的JSON文档模型,在处理海量数据能力上具有更可靠的的水平扩展能力和易管理性。


从技术应用场景来说,我认为MongoDB特别适合数据量较大(亿级以上)、数据结构复杂多变,以及绝大部分的现代Mobile和Web应用。对使用Microservices架构的同学,更可以大胆考虑MongoD,B因为在微服务架构下对强事务的需求相对会少很多。







请到「今天看啥」查看全文