nosql数据库和传统关系库到底啥区别? 什么场景下用redis缓存库和PG?

参与20

4同行回答

zhuqibszhuqibs  软件开发工程师 , Adidas
长篇大论就不写了,就写几点(1)传统关系型用sql,nosql不用sql(2)传统关系型数据在表中,nosql基本非结构化(3)传统关系型结构修改用sql,nosql结构修改不用sqlredis用于缓存类的数据存储,通常用于记录大量重复的操作,比如点击率,事物性不强pg用于记录交易型事物,事物性强...显示全部

长篇大论就不写了,就写几点
(1)传统关系型用sql,nosql不用sql
(2)传统关系型数据在表中,nosql基本非结构化
(3)传统关系型结构修改用sql,nosql结构修改不用sql

redis用于缓存类的数据存储,通常用于记录大量重复的操作,比如点击率,事物性不强
pg用于记录交易型事物,事物性强

收起
互联网服务 · 2020-04-28
浏览3944
youki2008youki2008  系统架构师 , DDT
Nosql 和关系型数据库的区别存储方式关系型数据库是表格式的,因此存储在表的行和列中。他们之间很容易关联协作存储,提取数据很方便。而 Nosql 数据库则与其相反,他是大块的组合在一起。通常存储在数据集中,就像文档、键值对或者图结构。存储结构关系型数据库对应的是结构化...显示全部

Nosql 和关系型数据库的区别

  1. 存储方式

关系型数据库是表格式的,因此存储在表的行和列中。他们之间很容易关联协作存储,提取数据很方便。而 Nosql 数据库则与其相反,他是大块的组合在一起。通常存储在数据集中,就像文档、键值对或者图结构。

  1. 存储结构

关系型数据库对应的是结构化数据,数据表都预先定义了结构(列的定义),结构描述了数据的形式和内容。这一点对数据建模至关重要,虽然预定义结构带来了可靠性和稳定性,但是修改这些数据比较困难。而 Nosql 数据库基于动态结构,使用与非结构化数据。因为 Nosql 数据库是动态结构,可以很容易适应数据类型和结构的变化。

  1. 存储规范

关系型数据库的数据存储为了更高的规范性,把数据分割为最小的关系表以避免重复,获得精简的空间利用。虽然管理起来很清晰,但是单个操作设计到多张表的时候,数据管理就显得有点麻烦。而 Nosql 数据存储在平面数据集中,数据经常可能会重复。单个数据库很少被分隔开,而是存储成了一个整体,这样整块数据更加便于读写

  1. 存储扩展

这可能是两者之间最大的区别,关系型数据库是纵向扩展,也就是说想要提高处理能力,要使用速度更快的计算机。因为数据存储在关系表中,操作的性能瓶颈可能涉及到多个表,需要通过提升计算机性能来克服。虽然有很大的扩展空间,但是最终会达到纵向扩展的上限。而 Nosql 数据库是横向扩展的,它的存储天然就是分布式的,可以通过给资源池添加更多的普通数据库服务器来分担负载。

  1. 查询方式

关系型数据库通过结构化查询语言来操作数据库(就是我们通常说的 SQL )。 SQL 支持数据库 CURD 操作的功能非常强大,是业界的标准用法。而 Nosql 查询以块为单元操作数据,使用的是非结构化查询语言( UnQl ),它是没有标准的。关系型数据库表中主键的概念对应 Nosql 中存储文档的 ID 。关系型数据库使用预定义优化方式(比如索引)来加快查询操作,而 Nosql 更简单更精确的数据访问模式。

  1. 事务

关系型数据库遵循 ACID 规则(原子性 (Atomicity) 、一致性 (Consistency) 、隔离性 (Isolation) 、持久性 (Durability) ),而 Nosql 数据库遵循 BASE 原则(基本可用( Basically Availble )、软 / 柔性事务( Soft-state )、最终一致性( Eventual Consistency ))。由于关系型数据库的数据强一致性,所以对事务的支持很好。关系型数据库支持对事务原子性细粒度控制,并且易于回滚事务。而 Nosql 数据库是在 CAP (一致性、可用性、分区容忍度)中任选两项,因为基于节点的分布式系统中,很难全部满足,所以对事务的支持不是很好,虽然也可以使用事务,但是并不是 Nosql 的闪光点。

柔性事务满足 Base 理论 ( 基本可用、最终一致性 ) 、 CAP 理论。

刚性事务满足 ACID 理论。

  1. 性能

关系型数据库为了维护数据的一致性付出了巨大的代价,读写性能比较差。在面对高并发读写性能非常差,面对海量数据的时候效率非常低。而 Nosql 存储的格式都是 key-value 类型的,并且存储在内存中,非常容易存储,而且对于数据的 一致性是 弱要求。 Nosql 无需 sql 的解析,提高了读写性能。

  1. 授权方式

关系型数据库通常有 SQL Server , Mysql , Oracle 。主流的 Nosql 数据库有 redis , memcache , MongoDb 。大多数的关系型数据库都是付费的并且价格昂贵,成本较大,而 Nosql 数据库通常都是开源的。

收起
互联网服务 · 2020-04-28
浏览3369
Luga LeeLuga Lee  系统架构师 , None
简单可以这样理解:1、 ACID与BASE的区别2、持久化or非持久化区别3、数据结构层面的区别4、其他层面至于redis和pg场景使用,可参考官网所述显示全部

简单可以这样理解:
1、 ACID与BASE的区别
2、持久化or非持久化区别
3、数据结构层面的区别
4、其他层面

至于redis和pg场景使用,可参考官网所述

收起
互联网服务 · 2020-04-11
浏览3585
匿名用户匿名用户
1、Nosql 、Mysql 区别参考链接 https://www.cnblogs.com/xrq730/p/11039384.html2、Redis 应用场景参考链接 https://segmentfault.com/a/11900000161883853、PostgreSQL 应用场景参考链接 http://mysql.taobao.org/monthly/2019/04/08/显示全部

1、Nosql 、Mysql 区别参考链接 https://www.cnblogs.com/xrq730/p/11039384.html
2、Redis 应用场景参考链接 https://segmentfault.com/a/1190000016188385
3、PostgreSQL 应用场景参考链接 http://mysql.taobao.org/monthly/2019/04/08/

收起
互联网服务 · 2020-04-08
浏览3602

提问者

hufeng719
系统工程师某钢铁企业
擅长领域: 数据库存储服务器

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-04-08
  • 关注会员:6 人
  • 问题浏览:6022
  • 最近回答:2020-04-28
  • X社区推广