文章目录

  • 1.NoSql是什么?
  • 2.NoSql数据类型
  • 3.NoSql数据库的分类
  • 4.NoSql的优点
  • 5.说明

1.NoSql是什么?

Nosql = not only sql,意即“不仅仅是sql”,泛指非关系型数据库。这些类型的数据存储不需要固定的模式(当然也有固定的模式),无需多余的操作就可以横向扩展。

说到非关系型数据库,就要简单的介绍一下关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据,我们平常使用的数据库,像MySQL,Oracle,SQL Server等都是传统的关系型数据库。

2.NoSql数据类型

NoSql中的数据是使用聚合模型来进行处理的。

聚合模型主要分为:KV键值对,BSON,列族,图形等几种方式

KV键值对:就是我们平常使用的map那样的存储模式

BSON:在MongoDB中常用的一种数据类型,是一种类json的一种二进制形式的存储格式,简称binary json,它和json一样,支持内嵌的文档对象和数组对象

列族:按列存储数据。最大的特点是方便存储结构和半结构化数据,方便做数据压缩,对针对某一列或者是某几列的查询有非常大的io优势

图形:不是放图形的,放的是关系,比如:朋友圈社交网络,广告推荐系统等,专注于构建关系图谱

3.NoSql数据库的分类

  • KV键值对
    临时性键值存储:Memcached,Redis
    永久性键值存储:ROMA,Redis
    应用场景:内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等
    数据模型:Key指向Value的键值对,通常用HashTable来实现
    优点:查找速度快
    缺点:数据无结构化,通常只被当做字符串或者是二进制数据
  • 面向文档的数据库:MongoDB,CouchDB
    Mongodb是一个基于分布式文件存储的数据库,由c++语言编写。 为web应用提供可扩展的高性能数据存储解决方案,是一个介于关系数据库和非关系数据库之间的产品,是非关系数据中功能最丰富,最像关系数据库的
    应用场景:WEB应用(与key-value类似,value是结构化的,不同的是数据库能够了解到value的内容)
    数据模型:Key-Value对应的键值对,Value是结构化的数据
    优点:数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构
    缺点:查询性能不高,而且缺乏统一的查询语法
  • 面向列的数据库:Cassandra,HBase
    应用场景:分布式的文件系统
    数据模型:以列簇式存储,将一列数据存储在一起
    优点:查找速度快,可扩展性强,更容易进行分布式扩展
    缺点:功能相对局限
  • 面向图形的数据库:Neo4J,InfoGrid
    应用场景:社交网络,推荐系统等,专注于构建关系图谱
    数据模型:图结构
    优点:利用图结构相关算法。比如最短路径寻址,N度关系查找等等。
    缺点:很多时候要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

4.NoSql的优点

易扩展:nosql数据库种类繁多,但是一个共同的特点都是去掉关系型数据库的关系型特性数据之间无关系,这样就非常容易扩展,也无形之间,在架构层面上带来了可扩展的能力
大数据量高性能:Nosql数据库都具有非常高的读写能力,尤其在大数据量下,同样表现优秀,这得益于它的无关系型,数据库的结构简单,一般mysql使用query cache,每次表的更新cache就会失效,这是一种大粒度的cache,在针对web2.0的交互频繁的应用,cache性能不高,而nosql的cache是记录级的,是一种细粒度的cache,所以nosql在这个层面上来说就要性能高很多了

多样灵活的数据模型:Nosql无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式,而在关系数据库里,增删字段是一件非常麻烦的事情,如果是非常大数据量的表,增加字段简直就是一个噩梦

5.说明

既然Oracle,MySQL等传统的关系型数据库非常成熟并且已经大规模的商用,为什么还要用NoSql呢?
主要是由于随着互联网的发展,数据量越来越大,对性能的要求越来越高,传统数据库存在着先天性的缺陷,即单机(单库)性能瓶颈,并且扩展困难。这样既有单机瓶颈,却又扩展困难,自然无法满足日益增长的海量数据存储及其性能要求,所以才会出现各种各样的NoSql产品,NoSql的根本性优势在于云计算时代,简单,易于大规模分布式扩展,并且读写性能极高。
看下两者的对比:

关于NoSql的理解,键值数据库,文档数据库,列式存储数据库,图形数据库相关推荐

  1. 列存储相关概念和常见列式存储数据库(Hbase、德鲁依)

    Table of Contents 列式存储数据库 Examples of Column Store DBMSs Hbase Table Row Column Column Family Column ...

  2. HBase是列式存储数据库吗

    HBase是列式存储数据库吗 导语 行式数据库和列式数据库 HBase是列式数据库吗? 本文转载自过往记忆(https://www.iteblog.com/),原文链接:https://www.ite ...

  3. centos7 校正linux系统时间_Linux系统:Centos7下搭建ClickHouse列式存储数据库

    一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.ClickHouse不应该被用作通用数据库,而是作为超高性能 ...

  4. 【讨论】大数据环境下 列式存储数据库与Exadata一体机哪个更有优势呢?

    PS:大家可以从 成本.性能.性价比.管理易用度 等方面 谈谈自己的想法 不了峰  发表于 2012-7-2 09:26:01 : 列式数据库,我选 用Sybase IQ 虽然我没有接触过Exadat ...

  5. clickhouse 列式存储数据库介绍

    ClickHouse介绍 ClickHouse来自哪里? 俄罗斯最大的搜索公司Yandex,在clickhouse的配置文件中我们也会看到yandex的影子. ClickHouse是什么? Click ...

  6. Linux系统:Centos7下搭建ClickHouse列式存储数据库

    本文源码:GitHub·点这里 || GitEE·点这里 一.ClickHouse简介 1.基础简介 Yandex开源的数据分析的数据库,名字叫做ClickHouse,适合流式或批次入库的时序数据.C ...

  7. 什么是列式存储数据库

    列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的.按列存储每个字段的数据聚集存储,在查询只需 ...

  8. 五大存储模型关系模型、键值存储、文档存储、列式存储、图形数据

    五大存储模型关系模型.键值存储.文档存储.列式存储.图形数据 时间:2014-06-12 16:15来源:知行网www.zhixing123.cn 编辑:麦田守望者 昨天跟一同事讨论Sybase是不是 ...

  9. 五大存储模型关系模型 键值存储 文档存储 列式存储 图形数据库

    也可以认为是五大数据库存储模型. 数据库市场需要细分,行式数据库不再满足所有的需求,而有很多需求需要通过本内存数据库和列式数据库解决,列式数据库在数据分析.海量存储.BI这三个领域有自己独到. 1. ...

  10. 一文了解Gauss数据库:开发历程、OLTPOLAP特点、行式列式存储,及与Oracle和AWS对比

    摘要:华为在IT的底层架构,逐步搭建起自己的基础架构,建立华为生态.我们这次详解华为数据库,并对目前主流的数据库进行对比.只有对比,才能发现不同. 数据库的重要性&华为推出新一代Gauss数据 ...

最新文章

  1. Java获取系统日期时间
  2. python时间序列因果检验_Python Statsmodels的时间序列Ljung_Box检验
  3. RHEL5.3下搭建SSH
  4. 网站前端_EasyUI.基础入门.0009.使用EasyUI Layout组件的最佳姿势?
  5. javacurrentmap_Java ConcurrentHashMap.forEach方法代码示例
  6. JavaScript中实现类似StringBuilder的功能
  7. grpc java 泛型_gRPC中Any类型的使用(Java和NodeJs端)
  8. oracle实现aes解密_Oracle的AES加密与解密用法
  9. 笔记本电脑黑屏但还在运作怎么办
  10. 设计模式系列之九:职责链模式
  11. [转载] python oct_Python oct()
  12. html网页添加友链,教你如何添加网站友情链接
  13. centos7 关闭自动yum更新
  14. 大橙子主题vfed3.15模板
  15. 自建企业邮箱如何选择服务器
  16. 基于java SSM的仿哔哩哔哩视频分享系统
  17. hz什么梗_90hz屏幕什么意思
  18. 双击计算机图标无法打开,我的电脑图标打不开_我的电脑双击打不开了
  19. js java 图片上传_spring(java,js,html) 截图上传图片实例详解
  20. 虚拟机的防火墙设置指令

热门文章

  1. WIN10虚拟机安装教程
  2. 如何克隆路由器MAC地址,怎么操作?
  3. C# HttpServer 框架
  4. 小朋友Stem课程制作3D打印无人机
  5. comsol入门闲聊
  6. 三菱FX3U-485ADP-MB通讯三种变频器程序 已实现测试的变频器:施耐德ATV312, 三菱E700,台达VFD-M三款变频器,支持rtu的协议的变频器都可实现
  7. linux 下kali linux 中使用hydra 进行对虚拟机中win10系统的密码破解
  8. 电子病历设计基本资料
  9. 常见存储的串口连接管理方法
  10. 摄氏度和开氏度的换算_摄氏度、华氏度和开氏度有何区别?