1.1 事务简介
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由一组SQL语句组成。
事务应该具有4个属性:原子性、一致性、隔离性、持久性。
这四个属性通常称为ACID特性。
-
原子性(atomicity):事务是一个不可分割的工作单元,事务中包含的所有操作要么都做,要么都不做。
-
一致性(consistency):事务必须使数据库从一个一致性状态变到另一个一致性状态,事务的中间状态不能被观察到。
-
隔离性(isolation):一个事务的执行不能被其他事务干扰,即一个事务的内部操作和使用的数据对并发的其他事物是隔离的,并发执行的各个事务之间不能互相干扰。
隔离又分为四个级别:.1. 读未提交(read uncommitted);
2. 读已提交(read committed,解决脏读);
3. 可重复读(repeatableread,解决虚读);
4. 串行化(serializable,解决幻读); -
持久性(durability):持久性也称永久性(permanence),指一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。
任何事务机制在实现时,都应该考虑事务的ACID特性,包括:本地事务、分布式事务,及时不能都很好的满足,也要考虑支持到什么程度。
1.2 本地事务
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/245653.html