广告
返回顶部
首页 > 资讯 > 数据库 >​NOSQL与关系型数据库的区别
  • 768
分享到

​NOSQL与关系型数据库的区别

2024-04-02 19:04:59 768人浏览 安东尼
摘要

关系型数据库存在的瓶颈1、高并发读写需求网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈2、海量数据的高效率读写网站每天产生的数据量是巨大的,对于关系

关系型数据库存在的瓶颈

1、高并发读写需求
网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈

2、海量数据的高效率读写
网站每天产生的数据量是巨大的,对于关系型数据库来说,在一张包含海量数据的表中查询,效率是非常低的

3、高扩展性和可用性
在基于WEB的结构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移。

4、事务一致性
关系型数据库在对事物一致性的维护中有很大的开销,而现在很多web2.0系统对事物的读写一致性都不高

5、读写实时性
对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比如发一条消息之后,过几秒乃至十几秒之后才看到这条动态是完全可以接受的

6、复杂sql,特别是多表关联查询
任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品阶级角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能极大的弱化了

在关系型数据库中,导致性能欠佳的最主要原因是多表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询。为了保证数据库的ACID特性,我们必须尽量按照其要求的范式进行设计,关系型数据库中的表都是存储一个格式化的数据结构。每个元组字段的组成都是一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于标语表之间进行链接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。

 

​NOSQL与关系型数据库的区别 


非关系型数据库

1、对数据库高并发读写的需求
Web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘io就已经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。

2、对海量数据的高效率存储和访问的需求
类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付。

3、对数据库的高可扩展性和高可用性的需求
在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?

 

在上面提到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如:

1. 数据库事务一致性需求

很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载下一个沉重的负担。

2. 数据库的写实时性和读实时性需求

对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说我(JavaEye的robbin)发一条消息之后,过几秒乃至十几秒之后,我的订阅者才看到这条动态是完全可以接受的。

3、对复杂的SQL查询,特别是多表关联查询的需求

任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。

 


您可能感兴趣的文档:

--结束END--

本文标题: ​NOSQL与关系型数据库的区别

本文链接: https://www.lsjlt.com/news/37160.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • ​NOSQL与关系型数据库的区别
    关系型数据库存在的瓶颈1、高并发读写需求网站的用户并发性非常高,往往达到每秒上万次读写请求,对于传统关系型数据库来说,硬盘I/O是一个很大的瓶颈2、海量数据的高效率读写网站每天产生的数据量是巨大的,对于关系...
    99+
    2022-10-18
  • 关系型数据库与非关系型数据库的区别是什么
    今天就跟大家聊聊有关关系型数据库与非关系型数据库的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。关系模型指的就是二维表格模型,而一个关系型...
    99+
    2022-10-19
  • NoSQL:非关系型数据库分类
    NoSQL,全称 Not Only SQL,意为不仅仅是 SQL,泛指非关系型数据库。NoSQL 是基于键值对的,而且不需要经过 SQL 层的解析,数据之间没有耦合性,性能非常高。 非关系型数据库又可...
    99+
    2023-09-05
    nosql 数据库
  • 关系型数据库和非关系型数据库的区别是什么
    这篇文章主要介绍了关系型数据库和非关系型数据库的区别是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。区别:关系型数据天然就是表格式的,因此存...
    99+
    2022-10-18
  • 关系型数据库和非关系型数据库有哪些区别
    关系型数据库和非关系型数据库有哪些区别,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。关系型数据库通过外键关联来建立表与表之间的关系,2.非关系型数据库通常指数据以对象的形式存储...
    99+
    2023-06-04
  • 关系型数据库和非关系型数据库有什么区别
    关系型数据库和非关系型数据库有什么区别,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。非关系型数据库(nosql)  非关系型数据库也称之为...
    99+
    2022-10-18
  • SQL与NoSQL数据库二者的概念与区别
    这篇文章主要介绍“SQL与NoSQL数据库二者的概念与区别”,在日常操作中,相信很多人在SQL与NoSQL数据库二者的概念与区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2022-10-18
  • 关系型和非关系型数据库有什么区别
    小编给大家分享一下关系型和非关系型数据库有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!关系型数据库:Oracle、DB...
    99+
    2022-10-18
  • 关系型数据库与非关系型数据库
    关系型数据库:   1、定义:     创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据   2、关系模型常用概念:     (1)关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名   ...
    99+
    2019-09-16
    关系型数据库与非关系型数据库
  • 关系型数据库和NOSQL数据库的优缺点介绍
    关系型数据库: 1) 关系数据库的特点是: - 数据关系模型基于关系模型,结构化存储,完整性约束。 - 基于二维表及其之间的联系,需要连接、并、交、差、除等数据操作。 - 采用结构化的查询语言(SQL)做数...
    99+
    2022-10-18
  • NoSQL非关系型数据库的作用是什么
    NoSQL非关系型数据库的作用是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Memcached(键值数据库)Memcac...
    99+
    2022-10-18
  • 关系型数据库与非关系型数据库简介
    目录关系型数据库:OracleSQLServerSybaseInformixAccessDB2mysqlvfpIngersFoxPro非关系型数据库:MongoDBCassandra...
    99+
    2022-11-12
  • 怎么将数据从Hadoop导出到关系型和NoSQL数据库
    小编给大家分享一下怎么将数据从Hadoop导出到关系型和NoSQL数据库,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!实践:使用Sqoop将数据导出到MySQLHadoop擅长与大多数关系型数据库打交道,因此将OLTP数据...
    99+
    2023-06-02
  • 最受Web开发者欢迎的NoSQL和关系型数据库!
    Web应用离不开数据库,目前市场上有种类繁多数据库可供开发者选择,例如SQL、NoSQL、键值、图谱数据库等等。关于不同数据库在开发者中的受欢迎程度也是仁者见仁智者见智,但是通过统计亚马逊这样的公共云平台...
    99+
    2022-10-18
  • 关系数据库和nosql的示例分析
    小编给大家分享一下关系数据库和nosql的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!NoSQL概念随着web2.0的...
    99+
    2022-10-19
  • 云服务器与云数据库的区别和联系与区别
    云服务器和云数据库是两个常见的云计算服务,它们之间有一些区别和联系。 云计算是一种按需使用的基础设施服务,它通常使用虚拟机、服务器和存储设备来实现。云计算服务按需提供,企业可以按照需求来选择所需的计算、存储和网络服务,而不需要自己构建基础...
    99+
    2023-10-26
    区别 服务器 数据库
  • 关系型数据库和非关系型数据库概述与优缺点对比
    目录一、关系型数据库1、概念2、关系型数据库的特点3、关系型数据库的瓶颈4、关系型数据遵循ACID原则1、A(Atomicity)原子性2、C(Consistency)一致性3、I(...
    99+
    2022-11-13
  • 主流关系数据库锁实现的区别
    SQL Server实现的锁主要是由通过锁表来实现,在内存中开辟专门区域对于不同级别的对象(行、键-块-对象、索引-库)相应的锁记录,事务层和存储层完全分离,并且锁占用开销较大,当锁占用较多资源的时候,会进...
    99+
    2022-10-18
  • 云服务器和数据库的区别和联系与区别
    云服务器和数据库都是用来存储和处理数据的系统,但它们的区别是很大的。云服务器是一种虚拟服务器,它的功能是让客户机或者用户可以连接到服务器进行数据访问。而数据库则是一个存储着数据的系统,它的作用是用来管理和维护数据,以便于在需要的时候可以从这...
    99+
    2023-10-26
    区别 服务器 数据库
  • 云服务器与云数据库的区别和联系与区别是什么
    云服务器(Cloud Storage,CDN)与云数据库(Cloud Database,CDB)是互联网云服务中的两种常见云服务形式。以下是云服务器与云数据库的主要区别和联系: 存储:云服务器存储的数据主要是以云主机的形式存储的,而云数...
    99+
    2023-10-27
    区别 服务器 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作