前言概念

  • 横向扩展 也叫 水平扩展,用更多的节点支撑更大量的请求。 如成千上万的蚂蚁完成一项搬运工作
  • 纵向扩展 又叫 垂直扩展,扩展一个点的能力支撑更大的请求。如利用1个人的能力,将个人潜力发挥至极致,如蜘蛛侠逼停火车

关系型数据库

关系型数据库是指采用了关系模型来组织数据的数据库。简单来说,关系模式就是二维表格模型。

主要代表:SQL Server,Oracle,Mysql,PostgreSQL。

优点:
1、易于维护:都是使用表结构,格式一致,数据表可以彼此关联协作存储,也很容易提取数据。
2、使用方便:SQL语言通用,可用于复杂查询,可用于一个表以及多个表之间非常复杂的查询。取数据方便,可读性更强,天然就是表格式的
3 如果数据操作需要高事务性或者复杂数据查询需要控制执行计划,那么传统的SQL数据库从性能和稳定性方面考虑是你的最佳选择。使得关系型数据库中可以适用于一切要求一致性比较高的系统中。比如:银行系统。

缺点:
1、读写性能比较差,尤其是海量数据的高效率读写,硬盘I/o是硬伤;在大数据量环境下引入索引能提升检索效率但依然和内存级的非关系型数据库有差距
2、扩展性弱:纵向来看固定的表结构,灵活度稍欠;横向来看数据库是最难以拓展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库没有办法像web Server那样简单的通过添加更多的硬件和服务节点来拓展性能和负载能力
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。

面临的挑战:
大数据时代的3v,volumn海量,比如项目运行产生的日志,用户的一条条评论) varity(文字,图片,音频各种各样数据),velocity(响应要及时,提高用户体验),互联网时代的三高 高可用,高并发,高性能

非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等。 它们往往是分布式的,且一般不保证ACID的数据存储系统,主要代表MongoDB,Redis、CouchDB。

优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。
2、速度快:nosql可以使用内存或者随机存储器作为载体(kv结构、单线程涉及,非阻塞io…),而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件。

不提供sql支持,学习和使用成本较高;
2、虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。
3、数据结构相对复杂,复杂查询方面稍欠。

形式

  • kv型
  • 文档型
  • 图形

总结:虽然NoSQL数据库也可以使用事务操作,但稳定性方面没法和关系型数据库比较,所以它们真正闪亮的价值是在操作的扩展性和大数据量处理方面。

这里借鉴java访问数据库的思想,即通过jdbc对接不同厂商的数据库平台,java直接通过jdbc即可对不同的数据库进行操作,阿里也研发了类似于jdbc这种中间层的统一数据服务层;

数据对比(电商平台下单模型案例)

注意点:复杂查询甚至涉及到7.8张表的管理,很复杂,但更要命的是在分布式下环境下是不支持这么干的,因为分布式事物支持不了太多的并并发,而且分布式环境下分表分库,大量的连接查询必然意味着大量的跨库操作,耗时严重;所以我们通常用冗余数据来避免大量的表关联,而且通过图片可看成关系型数据已经被关系模型及表结构限定死了,想扩展并不容易,而非关系型只需要增添或删除几个字段就可以灵活调增表结构

而nosql可以很完美解决这个问题,如下,nosql中存储的数据可以转化为一个个大json串,以前需要7,8张表管理查询的数据一个大json串就可以表示;如果这7,8张表提取出来的数据是热点数据,直接把它的大josn串通过redis缓存到内存中即可

常见的nosql数据格式

  • KV,kv键值对,常见
  • BSON,类似于json,常见
  • 列族:顾名思义,是按列存储数据的。最大的特点是方便存储结构化和半结构化数据,方便做数据压缩,对针对某一 列或者某几列的查询有非常大的IO优势。

    图形 :社交软件表示复杂人际关系时通用,比如向你展示你可能感兴趣的人,你和这位好友的共同好友

    nosql的四大类型

数据库选择实战应用,以淘宝首页为案例

基本商品信息:此类信息存储在关系型数据库中
商品描述,详情,用户对商品的描述(文本类型),此类信息存储在文档型数据库mongdb中
商品图片:淘宝自己的tfs,谷歌则是使用gfs
商品关键字:ISearch搜索引擎
商品热点信息:比如百度热搜,放到非关系型内存数据库redis中,起到缓存的作用

关系型数据库 vs 非关系型数据库相关推荐

  1. 关系型数据库和非关系型数据库的优劣对比?

    关系型数据库和非关系型数据库的优劣对比? 关系型数据库和非关系型数据库的优劣对比? 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织. 优点: 1.易于维护:都是使用表结构 ...

  2. 1、数据库是什么?关系型数据库和非关系型数据库又是什么?

    在学习数据库之前,应该先理解什么是数据.本节先介绍数据以及数据库的概念,再对关系型数据库和非关系型数据库的优缺点进行分析. 描述事物的符号称为数据.数据有多种表现形式,可以是数字,也可以是文字.图形. ...

  3. 关系型数据库、非关系型数据库

    2019-02-25  20:38:36 转自 https://www.cnblogs.com/zylq-blog/p/7595979.html 关系型数据库和非关系型数据的比较 一.关系型数据库 关 ...

  4. [数据库]---nosql,非关系型数据库整理

    1.关系型数据库与非关系型数据库的区别 Tables 关系型数据库 非关系型数据库 成本 好的收费 开源的,都免费的 存储与查询 硬盘存储,相对查的慢 内存存储,查的快 存储格式 只能是基本格式 多种 ...

  5. MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...

    什么是数据库? 数据库(Database):存储数据的仓库 高效地存储和处理数据的介质(介质主要是两种:磁盘和内存) 数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关 ...

  6. 数据库知识 | 关系型数据库与非关系型数据库小记录

    用一句话来概括数据库作用--数据库用来组织.存储.管理数据.现在信息时代,可以说数据已经成为了一个十分重要的资源,对一家企业来说甚至可以称为最为核心的竞争力,管理好数据资源尤为重要. 文章目录 一.数 ...

  7. 关系型数据库和非关系型数据库的区别

    关系型数据库和非关系型数据库的区别 待会总结,先自我学习先 一 关系型数据库 有 我们只需要 记住常用的几个:mysql /oracle/sql server/sqlite 几个即可 我还有一篇文章 ...

  8. 简述关系型数据库和非关系型数据库

    当前数据库分为关系型数据库和非关系型数据库 关系型数据库 关系型数据库:指采用了关系模型来组织数据的数据库. 关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据 ...

  9. 入门nosql数据库(非关系型数据库)

    MySQL数据库(关系型数据库)与nosql数据库(非关系型数据库)的区别

  10. 关系型数据库和非关系型数据

    一.关系型数据库 关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织 当今十大主流的关系型数据库 Oracle,Microsoft SQL Server,MySQL,Post ...

最新文章

  1. 图解GitHub和SourceTree入门教程
  2. 周志华《机器学习》课后习题解析(第二章)模型评估与选择
  3. LeetCode Subarray Sum Equals K
  4. HTML5 SVG
  5. 我的编程之路:网编到全栈的漫长路
  6. python生成数据库登录界面_python 生成数据库
  7. linux中的轮询机制select/poll/epoll特点分析
  8. 深度学习(三)----算法岗面试题
  9. php fig是什么,还是看好 PHP-FIG
  10. 解码2022中国网安强星丨构建企业第一重“安全感”,联软科技以零信任重塑网络安全边界
  11. 倾斜摄影三维建模软件photoscan教程
  12. url %E4%BD%A0%E5%A5%BD 编码问题
  13. 【算法与数据结构】分治(Divid Conquer)算法——以快排,归并排序,二分查找为例
  14. android fps测试 源码,转一个刺激战场极限帧率代码和修改教程,亲测流畅不卡
  15. 使 Windows 下的 Qt 应用程序获得 Administrator 权限
  16. 栈和堆的区别是什么? 为什么说栈的速度快,堆的速度慢?
  17. 导航栏的使用(ToolBar、BottomNavgationView)
  18. Unity3D笔记六 GUI游戏界面
  19. java基础-数组-案例练习-检测一个字符串是否为回文 回文字符串是指正着读和反着读该字符串都是相同拼写
  20. 游戏的服务器号怎么查询网站,游戏服务器状态查询网站

热门文章

  1. android学习一---搭建开发环境
  2. 详解C#防访问修饰符:public,private,protected,internal
  3. C++ strlen和size的等价性
  4. Net设计模式实例之中介者模式(Mediator Pattern)
  5. OpenCV3学习(10.2)codebook码书法实现背景剔除
  6. C语言整数与字符串相互转换
  7. 工厂模式 — 在项目中的用法
  8. SpringMVC项目中,jsp文件无法显示从Controller中传递过来的ModelAndView的模型数据
  9. 树莓派编译mysql卡死_关于树莓派编译工作空间卡死情况的解决办法
  10. linux下识别内存,c – Linux:识别内存中的页面