互联网背景下为什么会出现NoSQL?
原文: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?相关推荐
- 【Canal】互联网背景下有哪些数据同步需求和解决方案?看完我知道了!!
点击上方蓝色"冰河技术",关注并选择"设为星标" 持之以恒,贵在坚持,每天进步一点点! 作者个人研发的在高并发场景下,提供的简单.稳定.可扩展的延迟消息队列框架 ...
- 征文 | “‘互联网+’背景下大数据与税收征管的深度融合研究” 专题征文启事...
党的十九大报告提出,推动互联网.大数据.人工智能和实体经济深度融合.国务院<促进大数据发展行动纲要>提出"将大数据作为提升政府治理能力的重要手段".随着互联网.大数据. ...
- 互联网+背景下给旅行社的重大挑战
新冠疫情对旅游业的经营造成了不同程度上的冲击,许多旅行社都面临着生存危机,但也有不少旅游人对旅游业持以乐观的态度,他们认为旅游业终将会反弹,而现在要做的就是对自家旅行社查漏补缺.借力整改,利用科技赋能 ...
- 毕业设计-互联网 + 背景下基于微信小程序的农产品分销系统
目录 前言 课题背景与简介 实现设计思路 一.研究背景 二.互联网 + 背景下的农产品分销平台发展现状 三.基于微信小程序农产品销售模式的SWOT分析 四.农产品分销微信小程序的功能实现研究 实现效果 ...
- “互联网+”背景下高校音乐教育产业化发展之新挑战
(一) 音乐文化发展环境的挑战 目前, 全球的经济.政治.文化事业处在蓬勃发展的阶 段, 全球交流日益频繁, 加上各国之间交流的途径也愈加多 样化.与此同时, 各个国家的文化也逐渐形成了相互分享. 互 ...
- 工业互联网背景下的高炉炉体三维热力图监控系统
前言 在当今 工业4.0 新时代的推动下,不仅迎来了 工业互联网 的发展,还开启了 5G 时代的新次元.而伴随着带宽的提升,网络信息飞速发展,能源管控上与实时预警在工业互联网中也占着举足轻重的地位.高 ...
- “互联网+”背景下使用微信公众号增强班主任工作与整合教学资源(泰微课)...
前记:此文是我爱人一项作业.因为我本人对于微信这一块比较熟悉,就参与这项作业中.此文已经参加移动和教育相关活动.作者是我爱人,如有转载请署名作者. 一.什么是"互联网+"? 早在1 ...
- “互联网+”背景下高校音乐教育产业化发展之新 途 径
(一 ) 互 动 学 习 平 台 的 建 设 高 等 音 乐 教 育 应 该 开 启 更 多 类 型 的 互 动 学 习 平 台 , 用 以 丰 富 音 乐 网 络 教 学 资 源 , 可 以 从 以 ...
- 计算机虚拟化技术背景,互联网+背景下的虚拟现实技术
杜婧子 刘烜塨 摘要 文章主要对互联网+背景之下虚拟现实技术进行了简单的分析,对其主要特征.关键技术以及在各个行业中的应用进行了分析. [关键词]互联网+ 虚拟现实技术 1 联网+背景下的虚拟现实技术 ...
- 互联网时代计算机科学技术的发展,互联网时代下的计算机科学技术发展趋势
互联网时代下的计算机科学技术发展趋势 <移动信息>2020年 第07期 | 蔡兵 四川应用技术职业学院,四川西昌615000 摘 要:在移动互联网的发展时代背景下,计算机科学技术被各个行业 ...
最新文章
- 20万个法人、百万条银行账户信息,正在暗网兜售
- 公司--超级链接跳转和表单提交,删除的表单提交和删除失败的提示信息
- python新闻系统_干货 | Python 实现新闻系统内容的增删改查功能
- 基于数据挖掘的旅游推荐APP(五):景点推荐模块
- boost::hana::ap用法的测试程序
- [BZOJ1626][Usaco2007 Dec]Building Roads 修建道路
- 【Unity】(转)游戏辅(外)助(挂)开发
- DORADO实现动态拼装查询条件
- 用 Lucene 构建文档数据库
- .Net Framework3.5离线安装
- 实变函数与计算机有关系吗,《复变函数与实变函数》
- TensorFlow c++ dump graph to pbtxt
- 学习mescroll的下拉刷新、上拉加载
- 【Python中三角函数正弦、余弦、正切的计算】
- 不想失业?你得学会为自己工作
- 我的毕业四年总结及对未来的期许!
- CSS中-moz-、-ms-、-webkit-、-o-的意义
- Vmware Ubuntu虚拟机磁盘扩容(非常简单)
- iis日志分析 seo必备技能
- hdu 5886 Tower Defence 树形期望dp 雪漫防守战