【文章摘要】下面就来介绍下非关系型数据库,也常常被成为NOSQL数据库,NOSQL有的人解释为「不需要SQL」,也有人解释为「NotOnlySQL」,最核心的一点就是NOSQL数据库一般都是Key-Value形式的,它的查询不需要SQL语句支持。
如果你不了解最基本的数据库,可以先看如下两篇:
《 天天鼓捣数据,你知道数据库长啥样吗? 》
《 学学写点SQL语句,好吗? 》
如果你读懂了,应该知道我以前介绍的都是
关系型数据库
,把TA想象成一张Excel表格就可以了哦。TA有这么个特点,就像一个人的个人信息一样(姓名、性别、身高、籍贯等),每个人的数据都是格式化的,每个人的信息都可以被填入表中。
如果有一个人有些特殊信息,比如有一个人有尾巴,你并不能记录到数据库当中,因为并没有「是否有尾巴」这个字段。
下面就来介绍下
非关系型数据库
,也常常被成为
NOSQL数据库
,NOSQL有的人解释为「不需要SQL」,也有人解释为「NotOnlySQL」,最核心的一点就是NOSQL数据库一般都是Key-Value形式的,它的查询不需要SQL语句支持。
我们举个KV数据库的例子:
QQ截图20160629133729
在这个数据库当中,像很多系统一样,主键,也就是Key,为手机号码。值,也就是Value为一个字符串,如果你看过我以前写过的文章,你应该可以看到Value是一段Json字符串,而且每条记录里面记录的东西都不同(对于扩展性,相比关系型数据库强到不知哪里去了),对于不需要的字段数据,绝不冗余。
查询的时候不用SQL,怎么查询呢,因为数据库为Key-Value数据库,所以只能通过Key来查询,也就是输入手机号,数据库返回那段Json数据。
其实整个非关系型数据库的理解非常简单,重要的是TA的意义。
首先,是效率的提升,据说KV数据库查询效率要高于SQL好几倍。
另外,好处就是扩展性,TA不像关系型数据库一样,存入数据必须按照格式按照套路存储。如上所述,只要定义了Key,数据库是不关心Value是什么的,这就使整个数据库不用在束缚于字段的设计。
最后,这种数据库是未来的趋势,而且大多数都免费,并且Json数据格式应该已经成为互联网最流行的数据格式,对Java以及JavaScript都极其友好。如果你还不了解Json,可以看看这篇《你真的了解JSON么?》。
至于关系型数据库和NOSQL数据库之间如何选择,还是要根据具体情况决策的,但是未来NOSQL数据库应该会成为主流,因为我已经看到了好多数据库改造与升级都开始用NOSQL数据库了。
登录 | 立即注册