NoSql初探

首先,NoSql不是 no sql,而是Not Only Sql,意思为”不仅仅是sql”,是非关系型数据库的统称。

NoSql主要用于超大规模数据的存储,这些类型的数据不需要固定的模式,无需多余操作就可以横向扩展。它主要有以下一些特点:

1.没有预定义的模式,不需要预定义表结构

2.没有声明性查询语言

3.非事务的,不具备ACID属性,区别于关系型数据库。

4.非结构化和不可预知的数据

5.高性能、高可用性、以及弹性扩展

NoSq通常分为4种类型,分别是

1.列存储数据库  特点是按列存储数据的方便存储结构化和半结构化数据,方便数据压缩,对一列或多列的数据查询有非常大的IO优势。代表产品有HBase,Cassandra

2.文档存储数据库 一般用json格式存储,存储内容是文档型的,这样有机会对某些字段建立索引,实现关系型数据库一些功能。代表产品有MongoDB,CouchDB

3.键值存储数据库  特点是能通过key快速找到value,通常用hash table实现。代表产品有大名鼎鼎的redis,tokyotyrant等。

4.图形存储数据库  图形关系的最佳存储,利用图结构相关算法实现,专注于关系图谱的构建,典型应用场景是社交网络。代表产品有Neo4J,InfoGrid等

那么,了解了这么多之后,NoSql的应用场景有哪些呢?

首先明确一点,NoSql不是要取代关系型数据库的。要知道,NoSql比关系型数据库诞生的还要早,要是NoSql没有问题,关系型数据库怎么可能会诞生?

NoSql不支持事务以及ACID属性,所以具有事务编程模型的场景,是不适用的。比如银行转账、电商的订单等。

假如你的应用需要处理快速读写,可以试试文档数据库和key-value数据库

假如你的应用需要实现社会化网络,可以试试图形数据库

假如你的应用数据类型不固定,经常发生变化,可考虑文档数据库和key-value数据库

假如你的应用需要存储Blob类型的数据,可以尝试key-value数据库

所以,用不用NoSql,用那个产品,取决你的业务场景,不要迷信。

    原文作者:北你妹的风
    原文地址: https://www.jianshu.com/p/52c669052b6f
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞