一些关于数据库技术发展的文章,基本上都是围绕着 SQL(关系型数据
库)与 NoSQL(非关系型数据库)的讨论来展开的。
当初在 NoSQL 运动刚刚起步的时候,“Say no to SQL(对 SQL 说不)”
的口号不绝于耳。当然,这个口号并没有成为现实。人们最终普遍接受了
“Not-Only SQL(不仅 SQL)”的说法。
在这里,真的要给 NoSQL 下一个定义,还真不是件容易的事。人们习惯
上把 MongoDB、Redis 这样的产品,作为 NoSQL 的普遍定义。
MongoDB 是一个用 C++语言编写的分布式文档存储数据库。它旨在为
Web 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个高性能、
开源、无模式的文档型数据库,是当前 NoSql 数据库中比较热门的一种。它在
许多场景下可用于替代传统的关系型数据库。
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持
久化的日志型、Key-Value(键-值)数据库,并提供多种语言的 API。
不过,更加中肯的定义是:凡是没有用到 SQL 的都算是 NoSQL,即便是
在传统的关系型数据库里。也就是说,你可以把它们看作是一对好基友;你中
有我,我中有你。用软件工程师 Martin Fowler 在一篇文章中提到的词来形容就
非常贴切:这个词就是“Polyglot Persistence”,即“混合持久化”或者“多语
言持久化”。所以说,在未来的数据库技术领域,将很有可能打破所谓的关系
型 SQL 和非关系型 NoSQL 之间的界限,用不同的工具达到不同的目的。将各
种数据库技术杂糅在一套系统中,各司其职。因此,就像 Fowler 所说的,无论
怎样定义 NoSQL 都是在做无用功。
在这方面,一些大型的互联网公司走在了前面。像 Google 和 Amazon,都
运行了非常大型的服务器集群,并逐渐衍生出了云计算的概念。他们都意识
到,SQL 数据库在应对服务器集群方面,出现了比较大的性能瓶颈。因此,纷
纷放弃 SQL,自己开始研发出像 BigTable 和 Dynamo 这样的存储平台。它们应
评论0
最新资源