2019版:第一章:(2)NOSQL 数据库

一、NOSQL 数据库概述

  1、概述

  NoSQL(NoSQL = Not Only SQL),意即“不仅仅是 SQL”,泛指非关系型的数据库。NoSQL 不依赖业务逻辑方式存储,而以简单的 key-value 模式存储。因此大大的增加了数据库的扩展能力。

  2、NOSQL 的特点

不遵循 SQL 标准
不支持 ACID
远超于 SQL 的性能

  

  3、NOSQL 的使用场景

对数据库高并发的读写
海量数据的读写
对数据高可扩展性的

  

  4、NOSQL 的不适用场景

需要事务支持
基于 SQL 的结构化查询存储,处理复杂的关系,需要即席查询。

  

        即席查询:即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
 
        建议:用不着 SQL 的和用了 SQL 也不行的情况,请考虑用 NOSQL。
 

二、NOSQL 数据库

  1、Memcached

    

  2、Redis

    

  Redis 与 Memcached 区别:
            Memcached:
                1、一般不持久化;
                2、支持简单 key-value 模式(键值只能为字符串)
                3、多线程 + 锁 机制
            Redis:
                1、支持持久化;
                2、支持五种数据类型;
                3、单线程 + 多路 IO 复用;

  3、MongoDB

    

    MongoDB:
          (1)支持条件查询
          (2)最接近关系型数据库的数据库
          (3)支持 JavaScript 语法;
 

三、行式存储数据库(大数据时代)

  1、行式数据库

       

       

     思考:如下两条 SQL 的快慢:

select * from user where id=3
select avg(age) from user

  

  2、列式数据库

     

      

    上面的两条 SQL 语句:

select * from user where id=3        行式数据库快,列式数据库慢
select avg(age) from user            行式数据库慢,列式数据库快

  

    (1)HBase

      

      HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。

      HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万元素的数据表。

    (2)Cassandra

      

      Apache Cassandra是一款免费的开源NoSQL数据库,其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。

      扩展:

计算机存储单位 计算机存储单位一般用B,KB,MB,GB,TB,EB,ZB,YB,BB来表示,它们之间的关系是:
位 bit (比特)(Binary Digits):存放一位二进制数,即 0 或 1,最小的存储单位。
字节 byte:8个二进制位为一个字节(B),最常用的单位。
1KB (Kilobyte 千字节)=1024B,
1MB (Megabyte 兆字节 简称“兆”)=1024KB,
1GB (Gigabyte 吉字节 又称“千兆”)=1024MB,
1TB (Trillionbyte 万亿字节 太字节)=1024GB,其中1024=2^10 ( 2 的10次方),
1PB(Petabyte 千万亿字节 拍字节)=1024TB,
1EB(Exabyte 百亿亿字节 艾字节)=1024PB,
1ZB (Zettabyte 十万亿亿字节 泽字节)= 1024 EB,
1YB (Jottabyte 一亿亿亿字节 尧字节)= 1024 ZB,
1BB (Brontobyte 一千亿亿亿字节)= 1024 YB.
注:“兆”为百万级数量单位。

四、图关系型数据库

  1、Neo4j

    

    主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)

    

五、DB-Engines 数据库排名

  
 
 
原文地址:https://www.cnblogs.com/niujifei/p/15791094.html