处理高并发,防止库存超卖 当前读和快照读

资料:

(1)分布式系统事务一致性解决方案:

http://www.infoq.com/cn/articles/solution-of-distributed-system-transaction-consistency

(2)MySQL事务隔离级别的实现原理:

https://www.cnblogs.com/cjsblog/p/8365921.html

(3)当前读和快照读

https://www.cnblogs.com/cat-and-water/p/6427612.html

(4)mysql处理高并发,防止库存超卖

https://blog.csdn.net/caomiao2006/article/details/38568825?utm_source=blogxgwz2

一、事务的四大特性:

1.原子性(Atomicity)(要么不执行,要么全部执行)

2.一致性(Consistency)(假设有多个数据库服务器,当修改了某一个数据库中的某一记录之后,【其他的数据库也要进行同步修改】)

3.隔离性(Isolation)(假设有事务1和事务2,则事务1绝不可以影响到事务2,事务2也绝不可以影响到事务1,即【事务1和事务2是相互独立的事件】)

4.持久性(Durability)(将【某应用服务器】的事务通过事务管理器记录到日志文件中,则当该应用服务器重启时,可以读取这些日志文件)

二、悲观锁和乐观锁的区别:

1.悲观锁,前提是,一定会有并发抢占资源,强行独占资源,在整个数据处理过程中,将数据处于锁定状态。
2.乐观锁,前提是,不会发生并发抢占资源,只有在提交操作的时候检查是否违反数据完整性。只能防止脏读后数据的提交,不能解决脏读。

三、MySQL事务隔离级别:

1.读未提交:一个事务可以读取到另一个事务未提交的修改。这会带来脏读、幻读、不可重复读问题。(基本没用)

2.读已提交(Committed-Read):一个事务只能读取另一个事务已经提交的修改。其避免了脏读,但仍然存在不可重复读和幻读问题。

3.可重复读(Repeatable-Read)(乐观锁):同一个事务中多次读取相同的数据返回的结果是一样的。其避免了脏读和不可重复读问题。

4.串行化(Serializable_Read)(悲观锁):事务串行执行。避免了以上所有问题,包括幻读。

 MySQL默认的隔离级别是【可重复读】。

猜你喜欢

转载自www.cnblogs.com/wu-1393180819/p/9828155.html