zoukankan      html  css  js  c++  java
  • NoSQL数据库

    最近看到Neo4J图形数据库也属于NoSQL,那NoSQL是什么,有几种类型?

    NoSQL泛指非关系型的数据库。Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。用于超大规模数据的存储。

    优势:

      易扩展

      大数据量高性能

      多样灵活的数据类型

    NoSQL数据库主要类型

    (1)Key-Value 数据库

      使用键值(key-value)存储的数据库,其数据按照键值对的形式进行组织、索引和存储。

      数据模型:键/值对

        值是一个字符串对象,可以是任意类型的数据

      常见的:Redis,Memcached,Cassandra,LevelDB

      优点:简单、易部署,大量写操作时性能高,查找速度快,扩展性好,灵活性好

      缺点:无法存储结构化信息、条件查询效率较低

      应用:

        主要用于处理大量数据的高访问负载,如:

          频繁读写,拥有简单数据模型的应用

          内容缓存(如会话、配置文件、参数、购物车)

          存储配置和用户信息的移动应用

    (2)文档数据库

      面向文档数据库会将数据以文档的形式储存。每个文档都是自包含的数据单元,是一系列数据项的集合。每个数据项都有一个名称与对应的值,值既可以是简单的数据类型也可以是复杂的类型。

      文档数据库通常以 JSON 或 XML 格式存储数据。

      数据模型:键/值对

        值是版本化的文档

      常见的:MongoDb,CouchDB

      优点:性能好,灵活性高,复杂性低,数据结构灵活

      缺点:无统一的查询语言  

      应用:

        存储、索引并管理面向文档的数据或类似半结构化数据,如:

          具有大量读写操作的网站

          使用json数据结构的应用

          使用嵌套结构等非规范化数据的应用程序

    (3)列式数据库

      以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询

      数据模型:列族

      常见的:HBase,BigTable,Cassandra,HadoopDB

      优点:

        高效的储存空间利用率

        查询效率高(读取多条数据的同一列效率高)

        可扩展性强

        容易做分布式扩展

      缺点:不适合小量数据,功能较少,大都不支持强事务一致性

      应用:

        分布式的文件系统

        拥有潜在大量数据的应用程序

        拥有动态字段的应用程序

        数据在地理上分布于多个数据中心的应用程序

    (4)图形数据库

      图数据库允许将数据以图的方式储存。实体会被作为顶点,而实体之间的关系则会被作为边。

      常见的:Neo4J, InfoGrid, Infinite Graph

       优点:灵活性高,支持复杂的图形算法,可用于构建复杂的关系图谱

       缺点:

        复杂性高、只能支持一定的数据规模

        不好做分布式的集群方案

      应用:

        用于处理具有高度相互关联关系的数据,如:

          社交网络、模式识别、依赖分析、推荐系统、路径寻找等问题

  • 相关阅读:
    __weak与__block修饰符区别
    Socket 记录
    Python yaml文件中文读取写入
    Xshell 连接 本地虚拟机
    MySQL查询学生表
    Python Excel读写操作
    pytest mark标记运行
    pytest 参数化
    pytest xfail参数详解
    pytest 失败截图
  • 原文地址:https://www.cnblogs.com/baby123/p/11022698.html
Copyright © 2011-2022 走看看