NoSQL一词最早出现于1998年,它是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。CarloStrozzi认为,由于NoSQL.悖离传统关系数据库模型,因此,NoSQL应该有一个全新的名字,例如NoREL或与之类似的名字。
2009年,Last.fm的Johan Oskarsson(约翰·奥斯卡森)发起了一次关于分布式开源数据库的讨论,来自Rackspace的Eric Evans(埃里克·埃文斯)再次提出了NoSQL的概念,这时的NoSQL主要指非关系型、分布式、不提供ACID的数据库设计模式。
2009年在亚特兰大举行的“no:sql(east)”讨论会是一个里程碑,该讨论会的口号是“select fun,profit from real world where relational=false:”。因此,对NoSQL最普遍的解释是“非关系型的”,主要是强调键值存储和文档存储数据库的优点,而不是单纯地反对关系数据库。
现如今,大家看到NoSQL这个词,可能会误以为是“No!SQL”的缩写,并深感诧异:“SQL怎么会没有必要了呢?”,实际上,NoSQL是Not OnlySQL的缩写,它的含义为“不仅仅是SQL”。NoSQL是一种非关系型、分布式、无须遵循ACID原则、不提供SQL功能的数据库,是对关系型数据库在灵活性和扩展性上的补充。NoSQL.的出现主要是解决大规模数据集合下数据种类多样性带来的挑战,尤其是大数据应用难题。
NoSQL具有“易扩展”“高性能”“灵活的数据模型”以及“高可用”等显著特点,这些特点的具体介绍如下。
1.易扩展
虽然NoSQL数据库的种类繁多,但是它们都拥有一个共同的特点,即去掉关系数据库的关系型特性。数据之间均无关系,这就使得数据库可以非常容易地扩展,这是完全区别于传统关系型数据库的一大特性。
2.高性能
NoSQL.数据库具有高并发读写性能,这一点在海量数据的处理上表现得尤其明显。这一点是得益于NoSQL.数据库的无关系性,NoSQL.数据库的结构比较简单。我们都知道,传统的关系数据库MySQL.使用QueryCache,每更新一次数据表,cache就会失效,在Web2.0时代,短时间内会有大量数据进行频繁的交互应用,这样一来,cache性能和效率就会不高。而NoSQL.的cache是记录级的,是一种细粒度的cache,所以与传统关系数据库相比较而言,NoSQL在这个层面上来说性能就要高很多。
3.灵活的数据模型
NoSQL数据库不需要事先为存储的数据建立相应的字段,用户可以随时存储自定义的各种数据格式。而在关系数据库里,需要在数据表里增加或者删除字段是一件非常麻烦的事情,尤其是在非常大的数据表里,增加字段简直就是一个蛋梦,这点在大数据量的Web2.0时代尤其明显。
4.高可用
NoSQL在不太影响性能的情况下,可以方便地实现高可用的架构。例如,Cassandra、HBase模型,我们甚至可以通过复制模型来实现NoSQL.的高可用。
本文可能转载于网络公开资源,如果侵犯您的权益,请联系我们删除。