原文:https://blog.csdn.net/u013709087/article/details/78313923

一、传统应用模式 (ALL IN ONE) 
所有的东西都部署在一台机器上,包括站点、数据库、文件等等(现在阿里云的出现方便了很多)。核心工作就是:前端传过来一些数据,然后业务逻辑层拼装,然后访问数据库,数据库返回数据,数据拼装成页面,最终返回到浏览器。 
这时候数据库可能会率先成为瓶颈,在流量峰值期容易宕机,第一可以优化sql语句,第二,典型的应用都是读数据库频率远大于写数据库频率。这时候可以采用读写分离,多读一写的数据库架构(一般是20%是写库,80%是读库);

这时候的主要矛盾点已经变为业务复杂度的提升带来的耦合,导致升级困难,开发容易引入bug,维护成本也提升。

1、Memcached 分布式缓存服务器,通过文件缓存来缓解数据库压力,为多个web服务器提供了一个共享的高性能缓存服务。在Memcached服务器上,又发展了根据hash算法来进行多台Memcached缓存服务的扩展,然后又出现了一致性hash来解决增加或减少缓存服务器导致重新hash带来的大量缓存失效的弊端。

不足: 
由于数据库的写入压力增加,Memcached只能缓解数据库的读取压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术来达到读写分离,以提高读写性能和读库的可扩展性。Mysql的master-slave模式成为这个时候的网站标配了。

2、主从复制读写分离 
主从复制:往主服务里插入一条数据的同时,也往从服务里写入一条数据(备份、容灾) 
读写分离:一般主作为写(20%),从作为读(80%)

3、在Memcached 高速缓存、MySQL主从复制,读写分离的基础之上,由于大量数据的增加,写压力开始出现瓶颈,由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。 
同时开始使用分库分表来缓解压力。 
MySQL的扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难,正是当前使用MySQL的开发人员面临的问题。

4、为什么用NoSQL? 
今天我们可以通过第三方平台(如:Google,Facebook等)可以很容易的访问和抓取数据。用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志已经成倍的增加。 
我们如果要对这些用户数据进行挖掘,那SQL数据库已经不适合这些应用了, NoSQL数据库的发展也却能很好的处理这些大的数据。

二、什么是NoSQL?

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”, 泛指非关系型的数据库。

1、作用 
NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。 
NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,这得益于它的无关系性,数据库的结构简单。 
NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。

2、关系型数据库(RDBMS)VS 非关系型数据库(NoSQL) 
RDBMS:

高度组织化结构化数据
结构化查询语言(SQL)
数据和关系都存储在单独的表中。
数据操纵语言,数据定义语言
严格的一致性
基础事务

NoSQL:

代表着不仅仅是SQL
没有声明性查询语言
没有预定义的模式
键 - 值对存储,列存储,文档存储,图形数据库
最终一致性,而非ACID属性
非结构化和不可预知的数据
CAP定理
高性能,高可用性和可伸缩性
总结: RDBMS 和NoSQL都有各自的特点和使用的应用场景,让关系数据库关注在关系上,NoSQL关注在存储上。

三、互联网时代面临的问题 
1、3V 和 3高 
3V: 海量的数据流量;多样(商品种类、各式各样);实时的数据需求 
3高: 高并发;高可用;高性能

四、NoSQL 数据模型简介 
传统的关系型数据模型的设计基本上是 基于数据库范式建立1:1 / 1:N / N:N,主外键的关系设计。 
1、NoSQL的设计: 
使用Bson() 类似于json的一种二进制形式的存储格式,简称 Binary JSON,它也同样支持内嵌的文档对象和数组对象。 
2、聚合模型 
高并发的操作是不太建议有关联查询的,互联网公司用冗余数据来避免关联查询,分布式事务是支持不了太多的并发的。 
3、NoSQL数据库的四大分类: 
①KV键值对:redis,内容缓存,主要用于处理大量数据的高访问负载等; 
②bson:文档数据库,MongoDB 是一个基于分布式文件存储的数据库,C++编写的。皆在为web应用提供可扩展的高性能数据存储解决方案。它介于关系型数据库与非关系型数据库之间的产品,是非关系型中功能最丰富的,且最像关系型数据库的; 
③列存储数据库:分布式文件系统 
④图关系型数据库 :它不是放图的,放的是 关系:如朋友圈社交网络等。专注于关系图谱。
--------------------- 
作者:Advancer-lbh 
来源:CSDN 
原文:https://blog.csdn.net/u013709087/article/details/78313923 
版权声明:本文为博主原创文章,转载请附上博文链接!

互联网背景下为什么会出现NoSQL?相关推荐

  1. 【Canal】互联网背景下有哪些数据同步需求和解决方案?看完我知道了!!

    点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...

  2. 征文 | “‘互联网+’背景下大数据与税收征管的深度融合研究” 专题征文启事...

    党的十九大报告提出,推动互联网.大数据.人工智能和实体经济深度融合.国务院<促进大数据发展行动纲要>提出"将大数据作为提升政府治理能力的重要手段".随着互联网.大数据. ...

  3. 互联网+背景下给旅行社的重大挑战

    新冠疫情对旅游业的经营造成了不同程度上的冲击,许多旅行社都面临着生存危机,但也有不少旅游人对旅游业持以乐观的态度,他们认为旅游业终将会反弹,而现在要做的就是对自家旅行社查漏补缺.借力整改,利用科技赋能 ...

  4. 毕业设计-互联网 + 背景下基于微信小程序的农产品分销系统

    目录 前言 课题背景与简介 实现设计思路 一.研究背景 二.互联网 + 背景下的农产品分销平台发展现状 三.基于微信小程序农产品销售模式的SWOT分析 四.农产品分销微信小程序的功能实现研究 实现效果 ...

  5. “互联网+”背景下高校音乐教育产业化发展之新挑战

    (一) 音乐文化发展环境的挑战 目前, 全球的经济.政治.文化事业处在蓬勃发展的阶 段, 全球交流日益频繁, 加上各国之间交流的途径也愈加多 样化.与此同时, 各个国家的文化也逐渐形成了相互分享. 互 ...

  6. 工业互联网背景下的高炉炉体三维热力图监控系统

    前言 在当今 工业4.0 新时代的推动下,不仅迎来了 工业互联网 的发展,还开启了 5G 时代的新次元.而伴随着带宽的提升,网络信息飞速发展,能源管控上与实时预警在工业互联网中也占着举足轻重的地位.高 ...

  7. “互联网+”背景下使用微信公众号增强班主任工作与整合教学资源(泰微课)...

    前记:此文是我爱人一项作业.因为我本人对于微信这一块比较熟悉,就参与这项作业中.此文已经参加移动和教育相关活动.作者是我爱人,如有转载请署名作者. 一.什么是"互联网+"? 早在1 ...

  8. “互联网+”背景下高校音乐教育产业化发展之新 途 径

    (一 ) 互 动 学 习 平 台 的 建 设 高 等 音 乐 教 育 应 该 开 启 更 多 类 型 的 互 动 学 习 平 台 , 用 以 丰 富 音 乐 网 络 教 学 资 源 , 可 以 从 以 ...

  9. 计算机虚拟化技术背景,互联网+背景下的虚拟现实技术

    杜婧子 刘烜塨 摘要 文章主要对互联网+背景之下虚拟现实技术进行了简单的分析,对其主要特征.关键技术以及在各个行业中的应用进行了分析. [关键词]互联网+ 虚拟现实技术 1 联网+背景下的虚拟现实技术 ...

  10. 互联网时代计算机科学技术的发展,互联网时代下的计算机科学技术发展趋势

    互联网时代下的计算机科学技术发展趋势 <移动信息>2020年 第07期 | 蔡兵 四川应用技术职业学院,四川西昌615000 摘 要:在移动互联网的发展时代背景下,计算机科学技术被各个行业 ...

最新文章

  1. 20万个法人、百万条银行账户信息,正在暗网兜售
  2. 公司--超级链接跳转和表单提交,删除的表单提交和删除失败的提示信息
  3. python新闻系统_干货 | Python 实现新闻系统内容的增删改查功能
  4. 基于数据挖掘的旅游推荐APP(五):景点推荐模块
  5. boost::hana::ap用法的测试程序
  6. [BZOJ1626][Usaco2007 Dec]Building Roads 修建道路
  7. 【Unity】(转)游戏辅(外)助(挂)开发
  8. DORADO实现动态拼装查询条件
  9. 用 Lucene 构建文档数据库
  10. .Net Framework3.5离线安装
  11. 实变函数与计算机有关系吗,《复变函数与实变函数》
  12. TensorFlow c++ dump graph to pbtxt
  13. 学习mescroll的下拉刷新、上拉加载
  14. 【Python中三角函数正弦、余弦、正切的计算】
  15. 不想失业?你得学会为自己工作
  16. 我的毕业四年总结及对未来的期许!
  17. CSS中-moz-、-ms-、-webkit-、-o-的意义
  18. Vmware Ubuntu虚拟机磁盘扩容(非常简单)
  19. iis日志分析 seo必备技能
  20. hdu 5886 Tower Defence 树形期望dp 雪漫防守战

热门文章

  1. 古风排版 分数 20作者 陈越单位 浙江大学
  2. 地理信息系统(GIS)网络架构
  3. 中兴2016校招软件在线笔试题
  4. 回顾2017、展望2018
  5. 环保数采仪环境污染在线监控设备 上传监控平台
  6. flv格式转换为mp4(ffmpeg)
  7. kali通过msf利用永恒之蓝攻击服务器
  8. RDL 报表 - 查询条件使用下拉框
  9. 使用Cytoscape-BiNGO 对非模式生物做go富集
  10. stm32串口通信实验