zoukankan      html  css  js  c++  java
  • 01-NoSQL概述

    学习资源:动力节点Redis教程-最新Redis视频教程-不得不精Redis


    1、什么是 NoSQL

    NoSQL = Not Only SQL(不仅仅是 SQL) ,也解释为 non-relational(非关系型数据库)。在 NoSQL 数据库中数据之间是无联系的,无关系的。数据的结构是松散的,可变的。


    2、为什么使用 NoSQL

    关系型数据库的瓶颈:

    1. 无法应对每秒上万次的读写请求,无法处理大量集中的高并发操作。关系型数据的是 IO 密集的应用。 硬盘 IO 也变为性能瓶颈。
    2. 表中存储记录数量有限,横向可扩展能力有限,一张表最大二百多列。纵向数据可承受能力也是有限的,一张表的数据到达百万级,读写的速度就会逐渐的下降。面对海量数据,必须使用主从复制分库分表。这样的系统架构是难以维护的。
      大数据查询sQL效率极低,数据量到达一定程度时,查询时间会呈指数级别增长。
    3. 无法简单地通过增加硬件、服务节点来提高系统性能。数据整个存储在一个数据库中的。多个服务器没有很好的解决办法,来复制这些数据。
    4. 关系型数据库大多是收费的,对硬件的要求较高。软件和硬件的成本花费比重较大。

    3、NoSQL 的优势

    3.1、可扩容,可伸缩

    3.2、大数据量,高性能

    NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。 关系型数据库(例如 MySQL)使用查询缓存。这种查询缓存在更新数据后,缓存就是失效了。在频繁的数据读写交互应用中。缓存的性能不高。NoSQL 的缓存性能要高的多。

    3.3、灵活的数据模型

    NoSQL 无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。 尤其在快速变化的市场环境中,用户的需求总是在不断变化的。

    3.4、高可用

    NoSQL 在不太影响性能的情况,就可以方便的实现高可用的架构。

    NoSQL 能很好的解决关系型数据库扩展性差的问题。 弥补了关系数据(比如 MySQL)在某些方面的不足,在某些方面能极大的节省开发成本和维护成本。

    MySQL 和 NoSQL 都有各自的特点和使用的应用场景,两者结合使用。让关系数据库关注在关系上, NoSQL 关注在存储上。

    3.5、低成本

    这是大多数分布式数据库共有的特点,因为主要都是开源软件,没有昂贵的 License 成本。


    4、NoSQL 的劣势

    1. 不支持标准的 SQL,没有公认的 NoSQL 标准
    2. 没有关系型数据库的约束,大多数也没有索引的概念
    3. 没有事务,不能依靠事务实现 ACID
    4. 没有丰富的数据类型:数值,日期,字符,二进制,大文本等

    5、NoSQL数据库

    • Redis
    • memcache
    • HBase
    • MongoDB
  • 相关阅读:
    docker OCI runtime
    docker 非root用户修改mount到容器的文件出现“Operation not permitted
    清除canvas画布内容--点擦除+线擦除
    js实现存储对象的数据结构hashTable和list
    学习ES6的全部特性
    页面重绘与重排版的性能影响
    测试css3的动画效果在display:none的时候不耗费性能
    stroke和fill顺序对绘图的影响
    css样式学习小知识
    统一事件监听
  • 原文地址:https://www.cnblogs.com/sout-ch233/p/13637409.html
Copyright © 2011-2022 走看看