事物与并发控制
##################################
事物是关系型数据库中非常重要的概念。
并发通常能带来更大的吞吐量、资源利用率和更好的性能。
当多个事物并发执行时,即使每个单独的事物都正确的执行,数据库的一致性可能被破坏。为了控制并发事物之间的相互影响,解决并发可能带来的资源竞争,及数据不一致的问题。
数据库的并发系统引入了基于锁的并发控制机制和基于多版本的并发控制机制MVCC。
#################################(非常重要。数据库管理员和开发者都应该了解)
pg的事物、MVCC的基本知识。工作细节和原理
1、事务4个重要特性
原子性、一致性、隔离性、持久性
原子性:就是事务执行,要么执行所有的操作,要么全部执行,要么不全部执行
一致性:执行事务时,数据库从一个状态变更为另外一个状态
隔离性:即使每个事务都保持一致性、原子性,但是执行并发时,由于他们的操作以人们不希望的方式交叉执行,就会导致不一致的情况,确保事务与事务并发执行时。每个事务都感觉不到其他事务在并发执行。
持久性:一个事务执行完成后,即使数据库发生故障,但是数据库的更改都永久的保存在数据库中,即永久保存在磁盘中。
2、并发引起的现象
如果所有的事务都是按照顺序执行,所有的事务执行时间内没有其他事务的交叉执行,不会发生事务并发现象。
但是一个事务执行,另外一个事务也在执行,并且产生了并发,会引发以下的现象。
2.1 脏读
当第一个事务读取了第二个事务中已经修改,但是未提交的