作家
登录

实例分析MySQL下的四种事务隔离级别

作者: 来源: 2017-08-09 15:56:30 阅读 我要评论

实例分析MySQL下的四种事务隔离级别

数据库事务有四种隔离级别:

  • 未提交读(Read Uncommitted):许可脏读,也就是可能攫取到其他会话中未提交事务修改的数据。
  • 提交读(Read Committed):只能攫取到已经提交的数据,Oracle等多半数据库默认都是该级别。
  • 可反复读(Repeated Read):可反复读。在同一个事务内的萌芽都是事务开端时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别清除了弗成反复读,然则还存在幻读。
  • 串行读(Serializable):完全串行化的读,每次读都须要获得表级共享锁,读写互相都邑壅塞。
  1. mysql> start transaction; # 操作2 
  2.  
  3. Query OK, 0 rows affected (0.00 sec) 
  4.  
  5. mysql> select * from user; # 操作4 
  6.  
  7. +----+----------+ 
  8.  
  9. | id | name | 
  10.  
  11. +----+----------+ 
  12.  
  13. | 10 | ziwenxie | 
  14.  
  15. +----+----------+ 
  16.  
  17. 1 row in set (0.00 sec) 

膳绫擎如许挡裉科书式定义第一次接触事务隔离概念的同伙看了可能会一脸懵逼,下面我们就经由过程具体的实例来解释四个隔离级别。

起首我们创建一个user表:

读未提交隔离级别

我们先将事务的隔离级别设置为read committed:

  1. mysql> set session transaction isolation level read uncommitted
  2. Query OK, 0 rows affected (0.00 sec) 
  3.  
  4. mysql> select @@session.tx_isolation; 
  5. +------------------------+ 
  6. | @@session.tx_isolation | 
  7. +------------------------+ 
  8. READ-UNCOMMITTED       | 
  9. +------------------------+ 
  10. 1 row in set (0.00 sec) 

鄙人面我们勘┧两个终端分别用来模仿事务一和事务二,p.s: 操作一和操作二的意思是按照时光次序来履行的。

事务1

读提交隔离级别

  1. CREATE TABLE user ( 
  2.     `id` int(11) NOT NULL AUTO_INCREMENT, 
  3.     `namevarchar(255) NOT NULL
  4.     PRIMARY
     1/5    1 2 3 4 5 下一页 尾页

      推荐阅读

      阿里5位嘉宾3个分享:HBaseCon Asia 2017干货满满

    HBaseCon是Apache HBase官方举办的技巧会议,重要目标是分享,交换HBase这个开源分布式大年夜数据存储的应用和开辟以及成长。HBaseCon提议于2012年。平日HBaseCon的举办地是在美国,这是>>>详细阅读


    本文标题:实例分析MySQL下的四种事务隔离级别

    地址:http://www.17bianji.com/lsqh/36624.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)