从CAP理论出发理下sql和nosql

下午看分布式计算时候,里面提到了用cap这个理论,以前就对这个概念接触过,但是一直理解的不是很好!
当前nosql也一直是个热点词汇,但是都说nosql=no  sql,可是没多少人说no sql 是啥,而是说了一句cn=china这样的话!在博客上曾看到这么个讨论“nosql是key-value吗?”。
这些问题是我一直对nosql困惑的重点。这里就借这个机会写点对这个的理解!错误之处,恳请指出,菜鸟感谢了!
1.cap
中文的翻译常常是:c:一致性;a:可用性;p:分区可容忍性;怎奈我这个人的语文不是很好,对于这么抽象的翻译还是理解的有些困难,所以我就用我的“白话”翻译一下:c:同一个数据在数据库中如果有值,那么必然这个值唯一;a:数据库应尽量365*7*24的正常运行;p:数据分布不一定要集中,分布的情况下数据库也可以正常提供服务;
我的理解就是这样的。
2.sql与nosql
下面就从cap说说sql和nosql。cap理论说,一个数据库必然不能同时满足c、a和p三个性质。所以我们的数据库(随便什么类型)都是在c、a和p的某一个或者是某两个(一般是两个)做的很好,而牺牲其他的性质的。好,既然有了这个理论,那么可以根据此很好的区分好sql和nosql了。
sql很擅长c和a,即在一致性和可用性方面做的很好,例如oracle、db2、sql server、mysql等;那他们的p做的怎么样呢?很显然,他们牺牲了p的(意思是在p上是做的不好的),最直观的理解这点就是单mysql实例不支持p性质的。
nosql与sql的一个最大的区别就是它最擅长p,然后在a和c之间按照需求选择。作为一个nosql产品,它肯定是支持p的,不然就不是一个nosql产品。例如mongodb、hbase、bigtable等等,这些数据库肯定是分布式的,跨网,跨区域等都不是问题。至于c和a,则根据数据库产品设计的初衷看是侧重a还是c了,一般这种数据库,要做到c挺难的,但是做到最终a还是很可以的。

好,写的很粗糙,但是应该写出了 我想表达的sql与nosql的理解。如果错误,请指正。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值