在说Isolation之前,需要谈谈关系型数据库的ACID特性。

  A(atomicity,原子性),指一个事务要么完全完成,要么全部回滚到起始状态,不存在中间状态。

  C(Consistency,一致性),指在事务开始前与事务结束后,及在事务内部,数据的完整性结束不被破坏,即不存在新旧数据的混合情况。如在一个事务处理过程中,有些数据被其他事务修改,则在事务中要么只出现旧值,要么只出现新值,决不能是旧值混在该事务内。

  I(Isolation,隔离性),指事务在执行过程中互不干扰,也不能看到其他事务未提交的数据;这种隔离性是通过锁机制来实现的,可以通过调整隔离级别(isolation level)来提升性能或并发性。

  D(Durability,持久性),指事务一旦完成,便不可撤消。

在谈隔离级别之前,还有一点要知道:事务是原子性的,要么完成要么回滚,所以对于事务可以很轻易地完成A,D.

对于C,I,就需要通过隔离级别来限制。

另一个常识是:隔离级别越高,ACID特性实现的越好,但数据库的并发性越低,效率越差。

  Mysql支持四种隔离级别:

  READ UNCOMMITED(读未提交),一个事务可以看到另一个事务未提交的数据,会出现脏数据(dirty data)

  READ COMMITTED (读已提交),一个事务只能看到已被提交的数据,可能会出现不可重复读。即在同一事务内同一SELECT会出现不同结果。

  REPEATABLE READ(可重复读),通过快照和锁,使得事务只在一个快照上操作,不会出现不可重复读的情况。

  SERIALIZABLE(串行化),通过保守的锁策略【修改被别的事务读取的数据的事务都要处于等待状态】,在实现ACID。

具体实验,可参看:http://xm-king.iteye.com/blog/770721。

还需要注意:并不是所有操作都能回滚的,DDL操作就不能。

还有一些隐式提交的事务:

  1,DDL

  2,对mysql库中的想关使用和修改,如用户等ALTER USERCREATE USERDROP USERGRANTRENAME USERREVOKESET PASSWORD.

  3,事务控制和锁语句, BEGINLOCK TABLESSET autocommit = 1 (if the value is not already 1), START TRANSACTIONUNLOCK TABLES.

  4,DATALoading

  5,Administrative statements. ANALYZE TABLECACHE INDEXCHECK TABLEFLUSHLOAD INDEX INTO CACHE,OPTIMIZE TABLEREPAIR TABLERESET.

  6,Replication control statementsSTART SLAVESTOP SLAVERESET SLAVECHANGE MASTER TO.

最新文章

  1. Centos7下安装python,查看python版本
  2. hibernate(十)双向关联关系的CRUD
  3. JS添加MD5,JS提示框
  4. 关于在EXCEL中输入01-01-01被转换为2001/1/1怎么解决
  5. transform animation transition css3动画
  6. HTTP 请求未经客户端身份验证方案“Anonymous”授权。从服务器收到的身份验证标头为“Negotiate,NTLM”
  7. Tomcat创建虚拟目录和程序热部署
  8. uva 1378 A Funny Stone Game (博弈-SG)
  9. GO语言可以直接输出数组
  10. nodejs教程:安装express及配置app.js文件
  11. WPF学习(8)数据绑定
  12. 编程获取linuxservercpu、内存和磁盘使用
  13. 监听JVM关闭
  14. 关于EF第一次加载慢或过一段时间不访问时再次访问加载慢问题的总结
  15. Java 反射(二)
  16. fragment滑动界面
  17. 持续集成-Jenkins安装部署
  18. 在前台根据传过来的XX级别的数字转XX的名字
  19. SQL数据库存储过程
  20. B树,B+树,B*树以及R树的介绍

热门文章

  1. 8-IO总结
  2. canvas对象arc函数的使用-遁地龙卷风
  3. Support for Xpm library: no问题
  4. EasyUI中Dialog的使用
  5. 淘宝(阿里百川)手机客户端开发日记第十篇 阿里百川服务器环境介绍之API文档的快速链接(四)
  6. word文档的生成、修改、渲染、打印,使用Aspose.Words
  7. WC总结
  8. jquery版悬浮模块demo
  9. Opencv SkinOtsu皮肤检测
  10. ubuntu下编译VLC