NoSQL会取代SQL数据库吗?

时间:2022-06-01 18:12:48

最近有Twitter、Digg和Reddit等多家Web 2.0企业宣布从MySQL转而使用非关系型数据库(NoSQL)提供可伸缩的数据存储解决方案,引起了开发者对NoSQL的强烈关注。

NoSQL真的会完全取代关系型数据库吗?

对此,前Google工程师,Milo(本地商店搜索引擎)创始人Ted Dziuba最近发表标题惊人的博客“I Can't Wait for NoSQL to Die”,对NoSQL的适用范围进行了分析。他认为,NoSQL也会带来一连串的新问题,并不会成为主流,无法取代关系型数据库。

他的理由是:Cassandra等NoSQL数据库在使用上并不方便,比如,修改column family定义时就需要重启。而且NoSQL更适合Google那样的规模,而一般的互联网公司都不是Google,早早地去考虑Google那样的规模的可扩展性,纯粹是浪费时间,存在巨大的商业风险。

他还透露,即使在Google,AdWords这样的关键产品也是基于MySQL实现的。

他在文中最后表示,NoSQL当然死不了,但是它最终会被边缘化,就像Rails被NoSQL边缘化一样。而DBA同学们也用不着担惊受怕,因为有钱招DBA的公司的决策者们都懂实际的生意是怎么回事儿。

Dziuba的文章因为言辞激烈,在社区里引起了强烈反应。

SQL数据库阵营赞同者大有人在。craigslist工程师、著名的MySQL专家Jeremy Zawodny表示,在读此文的时候,不时会心一笑。他说,NoSQL运动只是软件不断进化进程中的正常现象。关系型数据库也会继续发展,MySQL社区不断推出的XtraDB或InnoDB插件, PBXT, Drizzle都是证据。各种技术竞争的结果是,我们获得了更多解决问题的选择。

drizzle项目开发者Eric Day也表示,NoSQL有很多值得学习的,但是目前大部分实际项目的最佳选择还是关系型数据库。

NoSQL阵营当然不会坐视不理,Cassandra项目组的Eric Evans表示,Dziuba提到Cassandra修改column family定义的问题其实很容易解决。而且,NoSQL并不是要取代MySQL,事实上Twitter仍然在用MySQL。如果关系型数据库能够承担负荷,那就用好了;如果不行,请考虑NoSQL。

而德国知名博客Code Monkeyism则嘲笑Dziuba看起来并没有用MySQL做过真实项目,因为MySQL如果没有memcache,基本上无法应付网站项目。他认为,NoSQL将使SQL数据库边缘化,而且一个重要理由恰恰是可以节省DBA的开销。

digg的前任首席架构师现在也在创业的Joe Stump说,自己现在的创业项目就是用NoSQL,而且列举了一系列问题挑战SQL阵营。他表示,无论从可伸缩性、速度、成本各个方面来看,NoSQL都有SQL数据库无法企及的优势。

你的项目开始用NoSQL方案了吗?你对这一争论的意见?欢迎反馈。