NOSQL(一)为什么选用NoSQL?

《NoSQL精粹》读书笔记,转载请注明出处《jiq?钦‘s technical Blog》

 

关系型数据库已经成为计算机文化的一部分,因其很多优点:

获取持久化数据

可以将数据持久化到磁盘,并且很容易访问到其中一小块数据。

并发

关系型数据库中有“事务”的概念,有效保障了多个程序访问同一份数据时的一致性,事务的ACID(原子性、一致性、隔离性、持久性)特性相信大家都了熟于心了。

集成

不同开发团队,不同平台,不同语言的应用程序可以共享同一份数据

标准的关系模型

之所以能够很方便地达到上述目的,是因为提供了近乎标准的、统一的关系模型

但是两个原因使得关系型数据库显得力不从心:

阻抗失谐

内存中的数据结构和关系模型相差甚远,这就是所谓的“阻抗失谐(impedance mismatch)”。像“嵌套记录”、“列表”等内存结构需要先转换为“关系”和“元组”才能进行存储。

蜂拥而来的集群

随着网络规模急剧增加,硬件计算资源“横向拓展”已经成为必然,集群已经成为趋势,然而关系型数据库并不是设计给集群用的,要么采用“共享磁盘子系统”来支撑集群上的文件系统(磁盘会成为瓶颈),要么按照逻辑对数据库进行分片,这样虽然能够将负载分散到多个服务器,但是应用程序必须控制所有分片,而且事务、一致性等无法跨越分片进行。

至此,NoSQL诞生。

为集群而生

基本上可以认为NoSQL是为集群而生的(少数的如图数据库不是这样),当待处理的数据量很大,或者以较快速度增长,同时对数据访问效率要求很高,考虑NoSQL。

阻抗失谐

记住在集群上处理“大数据”并不是NoSQL唯一的原因,阻抗失谐也是另一大关键因素,NoSQL数据库中没有传统关系型数据库中的“模式”的概念,无需事先定义好数据存储模型,可以随意添加字段,非常适合于处理不规则数据和自定义字段,当希望以更加方便友好的数据交互方式来提高应用程序开发效率时,考虑NoSQL。

时间: 2024-10-08 19:20:51

NOSQL(一)为什么选用NoSQL?的相关文章

NoSQL:如何使用NoSQL架构构建实时广告系统

JDNoSQL平台是什么 JDNoSQL平台是一个分布式面向列的KeyValue毫秒级存储服务,存储结构化数据和非机构化数据,支持随机读写与更新,灵活的动态列机制,架构上支持水平扩容,提供高并发.低延迟.高可用.强一致数据库服务,可满足各种业务场景.完善的平台支持,支持业务自助化建表,查看监控,在线DDL等. 1.1 JDNoSQL所处生态的位置 从上图可以看出,JDNoSQL是一种构建在HDFS之上的分布式.面向列的存储系统.在需要实时读写.随机访问超大规模数据集时,可以使用JDNoSQL.目

《NoSQL入门》关于NoSQL

关于NoSQL的专栏申请了可能快一年了,也没有填充一篇文章,今天看到,还是先写一篇放进去吧.现在应用NoSQL的人也非常多了,大家可能都不再陌生了,中文方面的资料已经漫天飞舞了.但是查看知乎中 NoSQL 相关话题的回答数却寥寥无几.可能是大家都更多的去关注相关实际技术的应用了,而忽略了这一概念的本质. 什么是NoSQL? 百度百科中:NoSQL,泛指非关系型的数据库.中文名:非关系型数据库,外文名:NoSQL=Not Only SQL 看 Wikipedia中:A NoSQL (origina

【大话NoSQL】——什么是NoSQL?

开始之前,先说说写这篇博文的背景,本来是想写MongoDB的内容,但是MongoDB又是非关系型数据库中最火的一个.我还是本着自己一直习惯的学习步骤,先有全局观,再着眼于微观,所以有必要先了解一下非关系数据库的发展历史,再开始学习MongoDB.否则,我们学习再多的MongoDB也只能是手中的一把沙,抓的越紧,剩下的越少. 整理的博文内容大部分都来自于网络,也有自己一点点见解吧,废话少说,下面进入我们今天的话题: 概念 NoSQL(NoSQL=Not Only SQL),意即"不仅仅是SQL&q

云计算背后的秘密:NoSQL诞生的原因和优缺点

转载收藏一篇对nosql讲解的比较全面的文章:http://blog.csdn.net/xlgen157387/article/details/47908797 这篇文章将和大家聊聊为什么NoSQL会在关系型数据库已经非常普及的情况下异军突起? 诞生的原因 随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求,主要体现在下面这四个方面: 1. 低延迟的读写速度:应用快速地反应能极大地提升用户的满意度; 2. 支撑海量的数据和流量:对于搜索这样大型应用而

一网打尽当下NoSQL类型、适用场景及使用公司

在过去几年,关系型数据库一直是数据持久化的唯一选择,数据工作者考虑的也只是在这些传统数据库中做筛选,比如SQL Server.Oracle或者是MySQL.甚至是做一些默认的选择,比如使用.NET的一般会选择SQL Server:使用Java的可能会偏向Oracle,Ruby是MySQL,Python则是PostgreSQL或MySQL等等. 原因很简单:过去很长一段时间内,关系数据库的健壮性已经在多数应用程序中得到证实.我们可以使用这些传统数据库良好的控制并发操作.事务等等.然而如果传统的关系

八种主流NoSQL数据库对比

摘要:虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只是时间问题:被迫使用关系数据库,但最终发现不能适应需求的情况不胜枚举.详见我的IT-Homer博客: 八种主流NoSQL数据库对比 简介 NoSQL,是一项全新的数据库革命性运动,NoSQL的拥护者们提倡运用非关系型的数据存储.现今的计算机体系结构在数据存储方面要求具备庞大的水平扩展性,而NoSQL致力于改变这一现状.目前Google的 BigTable 和Amazon 的Dynamo使用的就是NoSQL型数

NoSQL聚合数据模型

NoSQL聚合数据模型 特点 聚合数据模型的特点就是把经常访问的数据放在一起(聚合在一块): 这样带来的好处很明显,对于某个查询请求,能够在与数据库一次交互中将所有数据都取出来: 当然,以这种方式存储不可避免的会有重复,重复是为了更少的交互: 缺点 聚合结构对某些交互有利,却阻碍另一些交互: 比如:以学生学号聚合学生信息(含学生姓名.班级.年龄.等信息,甚至英语学科成绩),通过学号查询时,能够在一次交互中查询出该学生的所有信息,但如果想通过学生姓名来查询,就很困难: 不支持跨越多个聚合的ACID

《NoSQL精粹》读书笔记

NoSQL数据库数据模型的一般分类: 1. 键值数据模型 2. 文档数据模型 3. 列族数据模型 4. 图数据模型 常见NoSQL数据库: Redis, Cassandra, MongoDB, Neo4J, Riak... 数据库应用趋势: 1. 由于数据量越来越大,大型系统的扩展方式由数据库在单一计算机上的纵向扩展->在计算机集群中的横向扩展 2. 混合持久化(关系型数据库 + NoSQL数据库) 第一部分 第1章 为什么使用NoSQL * 关系型数据库和应用程序之间的“阻抗不匹配”.关系模型

(转)一网打尽当下NoSQL类型、适用场景及使用公司

摘要:对比传统关系型数据库,NoSQL有着更为复杂的分类——键值.面向文档.列存储以及图数据库.这里就带你一览NoSQL各种类型的适用场景及一些知名公司的方案选择. 在过去几年,关系型数据库一直是数据持久化的唯一选择,数据工作者考虑的也只是在这些传统数据库中做筛选,比如SQL Server.Oracle或者是MySQL.甚至是做一些默认的选择,比如使用.NET的一般会选择SQL Server:使用Java的可能会偏向Oracle,Ruby是MySQL,Python则是PostgreSQL或MyS