• 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 数据库排名

      
     
     
  • 相关阅读:
    [CareerCup] 1.4 Replace Spaces 替换空格
    [CareerCup] 1.3 Permutation String 字符串的排列
    Android @1x,@2x,@3x 资源文件自动分包工具
    Android 使用xml实现边框阴影,背景渐变效果(附有RGB颜色查询对照表)
    Android中快速实现自定义字体!
    Android AS升级3.1 编译报错:The SourceSet 'instrumentTest' is not recognized by the Android Gradle Plugin.
    Android getRunningTasks和getRunningAppProcesses失效
    Android 实现朋友圈有图片和视频
    Android 仿微信朋友圈拍小视频上传到服务器
    Android setUserVisibleHint-- fragment真正的onResume和onPause方法
  • 原文地址:https://www.cnblogs.com/niujifei/p/15791094.html
Copyright © 2020-2023  润新知