ACID CAP和BASE

本文介绍了数据库事务的ACID特性,包括原子性、一致性、隔离性和持久性。还阐述了分布式CAP理论,即一致性、可用性和分区容错性最多只能同时满足两个,通常应先保证分区容错性。此外,介绍了BASE理论,它是对CAP理论的延伸,可实现最终一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事务的特性:ACID

浅谈自己的看法,若有错误,请纠正

  • 原子性(Atomicity):

原子性意味着数据库中的事务执行是作为原子。即不可再分,整个语句要么执行成功,要么失败回滚.

  • 一致性(Consistency):

一致性,指事务开始到事务结束的过程,数据库的完整性约束没有被破坏。满足算数逻辑 拿转账的例子说明:A向B转账500,则应该同时执行满足 A –500,B+500的算术逻辑.

  • 隔离性(Isolation):

多个事务的执行是互不干扰的,当多个用户并发的访问数据库,一个用户的操作对其他用户的操作应该是不可干扰的,应当相互隔离
数据库中的隔离级别:
READ_UNCOMMITTED: 已提交读,与Read_uncommitted不同之处,解决了脏读的问题.
READ_COMMITED: 已提交读,与Read_uncommitted不同之处,解决了脏读的问题.
REPEATABLE_READ: 可重复读,解决了脏读的问题,但是依然可以重复读、幻读,mysql默认的隔离级别.
在mysql中可以使用select @@tx_isolation 与 set session transcation isolation level xxx来查看和修改事务的隔离级别
SERLALIZABLE: 可序列化,事务的最高隔离级别,不能脏读, 重复读和幻读,但会失效率降低,通常很少使用.

  • 持久性(Durability):

当事务提交后,它对数据库的操作结果的改变是永久的,不可以逆转.

分布式CAP理论

CAP定理又称CAP原则,指的是在一个分布式系统中,Consistency(一致性),
Availability(可用性),Partition tolerance(分区容错性),最多只能同时三个特性中的两个,三者不可能同时满足.

  • Consistency (一致性):

数据在多个事务之后是否能够保持一致的特性.

  • Availability (可用性):

服务必须保持一直可用的状态,并且应该在正常的时间内响应

  • Partition Tolerance (分区容错性):

在分布式系统中某个单一的节点或者服务出现异常停止服务时,仍然能够对外提供满足一致性和可用性的服务.

如何取舍

根据CAP的原则, 只能同时三个特性中的两个,在分布式系统中,应该首先满足Partition Tolerance,这是因为当每一节点出现故障时,必须保证这个系统的正常服务,当然此时是无法同时满足一致性和可用性的. 那么应当保留A还是P呢,当然具体的取舍规则应当参考特定的条件,通常的网站很多都采用AP,同时采用适合的方式达到最终一致性(Eventual Consitency.

BASE理论

BASE理论是对CAP理论的延伸,当分布式系统( 采用AP)无法做到强一致性,但可以使用适合的方式达到最终一致性(Eventual
Consitency.

BASE是指

  • 基本可用(Basically Available)
    基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用.
  • 软状态(Soft State)
    软状态是指允许系统存在中间状态,而该中间状态不会影响系统整体可用性。
  • 最终一致性(Eventual Consistency)
    最终一致性是指系统中的所有数据副本经过一定时间后,最终能够达到一致的状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值