关系型数据库与noSql

关系型数据库:
MySql,Orcale,SqlServer
关系型数据库是以行和列的形式展示,行与列的形式组合起来的数据的集合,一个数据库包括一个或多个表,比如一个人的信息有:ID,姓名,年龄等等,这些信息都是和这个人有关系的;

非关系型数据库:redis,mongoDB等;
非关系型数据库主要会使用一个hash table 里边的数据是以“key“ ”value“键值对的形式存在,key唯一,value值可以是多个数据,Value之间没有任何关系;

关系型数据库事务遵循ACID(原子性,一致性,隔离性,持久性)
非关系型数据库事务BASE 基本可用(假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:响应时间有延迟,比如正常0.5秒,而基本可用响应时间是2秒) 、
软状态(允许状态有一段时间并不同步) 最终一致性;
BASE是对CAP中一致性和权衡的结果,CAP(一致性,可用性,容区分错性);

关系型数据库:
高度组织结构化数据,
结构化查询语言,
数据和关系都存储在单独的表中,
遵循ACID事务原则;原子性,一致性(A账户往B账户转100,B账户得到100,保持逻辑前后数据保持一致),独立性(A账户要往B账户转账过程中,没完成B账户是看不到的)持久性( 事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响 ),ACID(Atomicity; Consitency ;Isolation ;Duriability);

noSql 泛指非关系型数据库 :
没有声明性查询语言,
没有预定义的模式;
键 - 值对存储,列存储,文档存储(买家评论),图形数据库(不是图片, 类似网络中人与人之间的关系图 ),
最终一致性;
非关系型数据库事务BASE 基本可用(假设系统,出现了不可预知的故障,但还是能用,相比较正常的系统而言:响应时间有延迟,比如正常0.5秒,而基本可用响应时间是2秒) 、
软状态(允许状态有一段时间并不同步) 最终一致性;
BASE是对CAP中一致性和权衡的结果;
CAP原则:Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼; 大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。
分区容错的意思是,区间通信可能失败 ;大多数分布式系统都分布在多个子网络。每个子网络就叫做一个区(partition)。比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。
noSql满足CP或AP;Redis满足CP;

一致性意味着 写操作之后的读操作,必须返回该值 ; “可用性”,意思是只要收到用户的请求,服务器就必须给出回应。 保证分区容错性,那么AC就不能同时成立,假如 P1,P2两个区间如果保证 P2 的一致性,那么 P1 必须在写操作时,锁定 P2 的读操作和写操作。只有数据同步后,才能重新开放读写。锁定期间,P2 不能读写,没有可用性不。如果保证 P2的可用性,那么势必不能锁定 P2,所以一致性不成立。

正常操作数据库使用IO读写操作,使用缓存技术是在做内存操作,内存比IO快,
为什么要用cache?
解决高并发使用缓存技术,减轻数据库访问压力;

直接访问数据库。100万次数据库访问压力很大 。。。
使用缓存客户端就先访问缓存 ,如果 缓存没有再查询数据库 ; 如果缓存有就直接返回客户端请求而不去查询数据库,就大大减轻数据库的访问压力;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值