NoSQL 入门简介

作者: DayDayUpppppp | 来源:发表于2017-05-21 22:35 被阅读60次
    1. 什么是NoSQL?

    NoSQL 指的是 Not only SQL,我的理解是,为了弥补传统关系型数据库带来的问题,NoSQL改进了传统数据库的缺点,是一种非关系型的数据库。

    2.关系型数据库的优点和缺点

    <ul> 优点:
    <li> 可以进行join 等复杂的操作</li>
    <li>数据更新的开销很小 </li>
    <li>保持数据的一致性 </li>
    </ul>

    <ul> 关系型数据库并不擅长以下处理:
    <li> 大量的数据写入</li>
    <li> 对简单的查询需要快速返回结果来处理 </li>
    </ul>

    详细说明这几个缺点:

    2.1 大量的数据的写入处理
    单台机器应对大量的写操作的时候,效率并不是很好。解决办法是 —— 分库思想
    假设原来的数据库上面有表A,B,C,D ,现在使用两台机器,机器1上面保存表A,C;机器2上面保存表B,D。

    优点 明显的可以减少每台数据库上面的数据量,减少I/O
    缺点 在物理层面上分隔了表A,C 和表B,D。所以分隔之后,没有办法进行join操作。

    另外:
    一般的网站为了应对访问的读写的压力,采用解决办法是使用主从复制技术来实现读写分离,以提高性能。(比如mysql的master-slave模式)不过这个是后话了。

    2.2 对简单的查询没有办法快速返回结果来处理
    因为关系型的数据库使用专门SQL的语言,进行数据读取,它需要对语言进行解析,同时还需要对表锁定和解锁。这里并不是先说想说关系型的数据库不适合台面太慢,二十而是想表达如果需要对数据进行告诉的查询,没有关系型数据库并不是唯一的选择。

    3. NoSQL 数据库

    NoSQL数据库只是应用于特定领域(或者可以理解为是SQL针对特定领域的优化),基本上不能进行复杂的操作(比如join),但是它恰恰弥补了之前列举的关系型数据库的不足之处。

    下面是NoSQL的优点:
    3.1 易于数据的分散
    Nosql设计来就是不支持join的,所以它可以很方便的将数据分散到多个服务器上面,这样很明显的可以减少每个服务器的负担。

    3.2 有很好的伸缩性
    可以方便的通过增加服务器的数量来提高系统处理数据的能力。

    小结:
    NoSQL的数据库天生就是为海量数据而生的,因此其对伸缩性的支持都非常好。

    4. 典型的NoSQL数据库
    内存kay-value数据库 非内存的key-value 数据库 面向文档的数据库 面向列的数据库
    memcached tokyo tyrant MongoDB HBase
    Redis Flare CouchDB Cassandra

    </br>
    PS:
    之后一段时间内可能会花一点时间,学习和整理一下NoSQL的知识,笔记会写在这个新建的笔记本里面。

    其他的文章
    NoSQL 入门简介:http://www.jianshu.com/p/6a39544af0f9
    一致性哈希:http://www.jianshu.com/p/a971e4709506
    序列化和反序列化:http://www.jianshu.com/p/8e76d8e8defd
    memcached 简介:http://www.jianshu.com/p/cfa066e4fc09
    Redis 简介:http://www.jianshu.com/p/2e14c606d03b
    MongoDB 简介:http://www.jianshu.com/p/71f9a9201803
    HBase 列数据库:http://www.jianshu.com/p/d29bb02b1514

    相关文章

      网友评论

        本文标题:NoSQL 入门简介

        本文链接:https://www.haomeiwen.com/subject/xfpvxxtx.html