分布式系统,NoSql与关系型数据库的比较

1 篇文章 0 订阅
1 篇文章 0 订阅

一、分布式系统CAP理论:
1、Consistency: 一致性 :
系统中所有节点的数据状态(版本) 是相同的

2、Avalibility 可用性 :
系统会处理和响应每个请求 24x7

3、Partition-tolerance 分区可容忍性:
如果一些节点宕机或者网络故障 还能提供服务

水平扩张:
1、数据分片
2、数据冗余
一致性:
1、最终一致性
2、强一致性

P是必须的 C和A具体需要更强调哪一个 就看具体业务需求。
在这里插入图片描述
分布式系统的一致性:
1、强一致性: 一单对数据有修改 所有的后续的读请求 读到的数据都是最新的版本
2、弱一致性: 数据修改之后 不保证后续的读请求会读到最新的版本(尽可能)
3、最终一致性: 弱一致性的特殊形式 在一次数据修改之后 最终的所有的请求都会拿到最新的版本

系统架构最终是取舍和平衡

ACID原则:

BASE原则:
面向大型的高可用 高并发 的分布式系统
在这里插入图片描述
分库分表:
关系型数据库在单机容量上达到上限的时候 做拓展是非常难的 往往要根据主键进行分表
其实可以想到一旦分表之后 就已经开始违反关系型数据库的范式了
因为同一个集合的数据被拆分到多个表

关系型数据库实际上包括两个重要的组成部分:
1、基于集合理论的sql
2、关系型数据模型
特点:
1、支持SQL需要提供一个复杂的系统 即使你仅仅使用最简单的功能
2、很多时候我们需要的仅仅是使用主键存取数据 但是关系型数据库依然要按照完全支持SQL理论提供地城支持

因此 有上可知 流年暗中偷换
当数据开始分布存储的时候 关系型数据库主键演变成 依赖主键的查询系统

NoSQL的崛起
1、它是Not Only SQL的缩写
2、一类非关系数据存储系统
3、通常不需要一个固定的表的模式
4、所有的NoSQL系统设计中 都淡化了一个或者更多的ACID属性
5、相比传统数据库 叫它分布式数据管理系统更加贴切
数据存储被简化更灵活 重点被放在了分布式数据管理上
特点:
1、支持SQL不再是必选项 取而代之的是简单的Key-Value存取模型
2、在关系型数据的基础上大刀阔斧的做减法 比如不支持事务
3、NoSql产品对性能的关注远远超过ACID 往往只提供行级别的原子性操作
即对同一个key的操作会是串行执行 保证数据不会损坏
4、这样的策略可以应对大多数场景 关键的是它可以带来非常可观的执行效率的提升
5、NoSql产品在设计上比较收敛 一般比较克制增加新功能 避免回到关系型数据库的老路上
在这里插入图片描述
在这里插入图片描述
关系型数据库和NoSQL数据库各有优缺点 彼此无法取代
关系型数据库应用场景: 电信 银行等领域的关键业务系统 需要保证强事务一致性
NoSQL数据库应用场景:互联网企业 传统企业等非关键业务(比如数据分析)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值