分布式事务

分布式事务一般会牺牲强一致性,保证高可用性和分区容错性,最终一致性。

CAP理论 :

  • C:一致性 各个节点之间的数据一致性

    • 强一致性: 客户端看到的跟数据库中的一样,不存在中间状态

    • 最终一致性:客户端看到的跟数据库中的可以暂时不一样,允许在中间状态,只要最终保持一致就可以

    • 弱一致性:允许部分数据不一致

  • A:可用性: 就算有某个服务宕机(坏了)整个系统也能用。(系统提供的服务,始终能在有限的时间内,对每个用户请求返回正常结果

  • P:分区容错性(可扩展性)必须要保证的

ACID:事务的四大特点

主要是为了保证本地事务的执行前后数据的完整

  1. 原子性:不可分割,要么全部成功,要么全部失败,不允许部分执行。

  2. 隔离性:多个事务并发执行时,会将不同的事务隔离起来,具体会根据不同的事务隔离级别进行处理,MySQL默认 可重复读 。(建议使用 读已提交)

    • 为什么建议使用读已提交而不是 可重复读。

    • 在RR隔离级别下,存在间隙锁,导致出现死锁的几率比RC大的多

    • 在RR隔离级别下,条件列未命中索引会锁表!而在RC隔离级别下,只锁行

  3. 一致性:(将数据从一个正确的状态,转换成另一个正确的状态)

  4. 持久性:数据修改后一定是永久保存的,即使数据库故障出错也因该可以恢复数据。

事务的隔离级别

  1. 读未提交: A事务读到了 B事务还未提交的事务 (脏读)

  2. 读已提交: 可能幻读,不会脏读。

  3. 可重复读: 比如 A查询“张三”不存在 ,B在此时插入张三提交, A插入“张三” 失败。 幻读链接

  4. 串行化: 在每条读的数据上加上锁,使之不可能发生冲突 ,但可能出现很多超时现象

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值