• 非关系型数据库


    一、概念

    非关系型数据库是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。

    NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。

    二、分类

    键值对存储(key-value)

    代表软件:Redis

    优点:查找速度快

    缺点:数据无结构化,通常只被当作字符串或者二进制数据

    应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。

    数据模型:Key指向Value的键值对,通常用hash table来实现

    列存储

    代表软件:Hbase

    优点:查找速度快,可扩展性强,更容易进行分布式扩展

    缺点:功能相对局限

    应用场景:分布式的文件系统

    数据模型:以列簇式存储,将同一列数据存在一起实现

    文档数据库存储

    代表软件:MongoDB

    优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构

    缺点:查询性能不高,而且缺乏统一的查询语法。

    应用场景:Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)

    数据模型:Key-Value对应的键值对,Value为结构化数据

    图形数据库存储

    代表软件:InfoGrid

    优点:利用图结构相关算法。比如最短路径寻址,N度关系查找等

    缺点:很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

    应用场景:社交网络,推荐系统等。专注于构建关系图谱

    数据模型:图结构

    三、特点

    易扩展

    NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。

    大数据量,高性能

    NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。

    灵活的数据类型

    NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是——个噩梦。这点在大数据量的Web 2.0时代尤其明显。

    高可用

    NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。

    四、应用场景

    数据模型比较简单

    需要灵活性更强的IT系统

    对数据库性能要求较高

    不需要高度的数据一致性

    对于给定key,比较容易映射复杂值的环境

  • 相关阅读:
    翻开spring源码横看竖看,满屏只有四个字,看不懂啊。幸好我有大神的深度剖析spring源码,轻松看懂
    Elasticsearch系列(五)ES数据写入
    基于Netty模拟大量WebSocket客户端
    从0到1,手把手实战:STM32最小系统核心板
    Android Studio实现内容丰富的安卓博客发布平台
    倾斜光栅的参数优化与容差分析
    MySQL(4)
    shell动态生成.sql文件的方法进阶
    vue2--1. 内容渲染指令 2. 属性绑定指令 3. 事件绑定 4. v-model 指令 5. 条件渲染指令
    冰河获奖啦
  • 原文地址:https://blog.csdn.net/qq_43173759/article/details/127806584