免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 876 | 回复: 0
打印 上一主题 下一主题

关于事务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-18 14:13 |只看该作者 |倒序浏览

关于事务
什么是事务?
事务通常是针对数据库处理中所发生的一件事,这件事在处理过程中要保证相关的数据和操作要完整、准确、安全。对于也就是说事务要具备原子性、一致性、隔离性和持久性,其中:
原子性是指单个事务中的操作是不可以被打断的,要么全成功,要么全回滚,不可以只完成部分。
一致性是指单个事务中的数据是对其他并发事务是不可见的,也就是说在事务未完成前其中数据是私有的,对外不可见。
隔离性是指并发的事务之间是互相不干扰的。
持久性是指事务的结果是可持久化的,结果不会消失。

并发事务可能引起的问题?
1.                Lost update:指A,B事务并发,A更新提交,B对同一目标数据更新,在A完成提交之前B回滚,则A的更新也消失。
2.                Dirty read:A,B事务并发执行,A更新库中数据,在未完成提交时,B读同一数据,可能会读到A更新的数据,此后,A回滚,那么B读的数据就不是数据库中的数据,此现象为脏读。
3.                Unrepeatable read:A,B事务并发,A读库中数据,此时B更新同一数据,A再次读同一数据,但是发现两次读的不一样,此现象为不可重复读。(还有一种情况也是不可重复读:A更新数据,B更新同一数据,A再读该数据,发现数据变了。)
4.                Phantom read:A,B事务并发,A读数据的过程中,B在插入或更新数据,此时A会读到库中原来有的数据不见的,新的数据凭空出现了。

事务隔离级别?
为了解决事务并发可能引起的问题,要使用到事务隔离级别。有四种隔离级别:
1.               read uncommitted isolation:不允许(1)问题存在,允许(2)问题存在。写事务执行时不允许同时有其他的写事务并发执行。
2.               read committed isolation:不允许(2)问题存在,允许(3)问题存在。读事务允许其他事务并发执行,没有提交的写事务执行时不允许同时有其他并发事务执行。
3.               repeatable read isolation:不允许(3)问题存在,允许(4)问题存在。读事务不允许写事务并发执行,没有提交的写事务执行时不允许同时有其他并发事务执行。
4.               Serializable:完全解决问题。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12821/showart_467098.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP