Postgres事物处理与并发控制.ppt_第1页
Postgres事物处理与并发控制.ppt_第2页
Postgres事物处理与并发控制.ppt_第3页
Postgres事物处理与并发控制.ppt_第4页
Postgres事物处理与并发控制.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Postgres事物处理与并发控制,Postgres事物处理与并发控制,事物与锁1.基本概念(略)2.目的:事务是用来保证数据的一致(integrity)。锁是保证数据的并发(控制多个事务的并发)(concurrency)。3.事务与锁的关系:锁的级别太高,可能会影响数据库的并发。锁的级别越低一般来说数据库的并发越好。,Postgres事物处理与并发控制,事务隔离等级在数据库操作中,为了有效保证并发操作的正确性,提出了事务隔离等级的概念。事务隔离等级就是为了同时解决一致性和并发的问题而存在的,SQL标准中定义了四种隔离等级,分别是串行化(SERIALIZABLE)、可重复读(REPEATABLEREAD)、读已提交(READCOMMITED)和读未提交(READUNCOMMITED)四个等级。四个等级并发性能依次升高,隔离度依次降低。,Postgres事物处理与并发控制,Postgres默认事务隔离等级是read-committed,可以通过SETTRANSACTION语句来设置当前事务的隔离级别,注意,该语句仅对当前事务有影响。如果要修改一个回话(session)的事务隔离级别,可以通过SETSESSIONCHARACTERISTICS语句来修改回话中所有事务的隔离级别。SETTRANSACTION可以覆盖SETSESSIONCHARACTERISTICS语句,只作用于当前transaction.,Postgres事物处理与并发控制,并发操作带来的数据库不一致性可以分为四类:丢失或覆盖更新、脏读、不可重复读和幻像读。读污染(dirtyreads)一个事务读取了被另一个未提交的并行的事务写的数据。不可重复的读(non-repeatablereads)一个事务重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务修改过。错误读取(phantomread)一个事务重新执行一个查询,返回一套符合查询条件的行,发现这些行中插入了被其他已提交的事务提交的行。这四种隔离级别和对应的特性在下面描述。,Postgres事物处理与并发控制,(1)丢失或覆盖更新当两个或多个事务选择同一数据,并且基于最初选定的值更新该数据时,会发生丢失更新问题。每个事务都不知道其它事务的存在。最后的更新将重写由其它事务所做的更新,这将导致数据丢失。上面预定飞机票的例子就属于这种并发问题。事务1与事务2先后读入同一数据A=16,事务1执行A-1,并将结果A=15写回,事务2执行A-1,并将结果A=15写回。事务2提交的结果覆盖了事务1对数据库的修改,从而使事务1对数据库的修改丢失了。,Postgres事物处理与并发控制,丢失或覆盖更新例子,Postgres事物处理与并发控制,(2)脏读一个事务读取了另一个未提交的并行事务写的数据。当第二个事务选择其它事务正在更新的行时,会发生未确认的相关性问题。第二个事务正在读取的数据还没有确认并且可能由更新此行的事务所更改。换句话说,当事务1修改某一数据,并将其写回磁盘,事务2读取同一数据后,事务1由于某种原因被撤销,这时事务1已修改过的数据恢复原值,事务2读到的数据就与数据库中的数据不一致,是不正确的数据,称为脏读。,Postgres事物处理与并发控制,脏读例子,Postgres事物处理与并发控制,(3)不可重复读一个事务重新读取前面读取过的数据,发现该数据已经被另一个已提交的事务修改过。即事务1读取某一数据后,事务2对其做了修改,当事务1再次读数据时,得到的与第一次不同的值。,Postgres事物处理与并发控制,不可重复读例子,Postgres事物处理与并发控制,(4)幻像读如果一个事务在提交查询结果之前,另一个事务可以更改该结果,就会发生这种情况。这句话也可以这样解释,事务1按一定条件从数据库中读取某些数据记录后未提交查询结果,事务2删除了其中部分记录,事务1再次按相同条件读取数据时,发现某些记录神秘地消失了;或者事务1按一定条件从数据库中读取某些数据记录后未提交查询结果,事务2插入了一些记录,当事务1再次按相同条件读取数据时,发现多了一些记录。,Postgres事物处理与并发

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论