mysqlトランザクション


        ,         ,      MYSQL     ,             。    ,              ,         。
  InnoDB    

   ACID Atomicity(   )、Consistency(   )、Isolation(   )、Durability(   )

1、      
    ,    ;    。

2、   
     (      ),    。

3、   
      。
          ,       ,         。
   100%  ,      。

4、   
 、     ,InnoDB                。
           , innodb_flush_log_at_trx_commit                  。
    
START TRANSACTION   BEGIN

    (    )
COMMIT

    (    )
ROLLBACK

   
SAVEPOINT adqoo_1
ROLLBACK TO SAVEPOINT adqoo_1
       adqoo_1         ,      

     

  “    ”  
SET AUTOCOMMIT = 0
  SQL            ,    COMMIT   ROLLBACK  
   ,   COMMIT        

      

    :           ,        ,        、  。
  :      ,        。
  :          ,        。

              

1、SELECT …… LOCK IN SHARE MODE(   )
      ,             (   commit     ,        )
SELECT     ,           

2、SELECT …… FOR UPDATE(   )
   SELECT * FROM tablename WHERE id<200
  id<200   ,       ,         、  、SELECT …… LOCK IN SHARE MODE  
        

             :              SELECT …… LOCK IN SHARE MODE  

3、INSERT / UPDATE / DELETE
           ,     

4、    
   SELECT * FROM tablename WHERE id>200
  id>200        

5、  
      
         ,           ,  ROLLBACK    
innodb_lock_wait_timeout = n          ,   50 

      

SET [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL
READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE
1、  SESSION、GLOBAL SET  
         
2、SET SESSION
           
3、SET GLOBAL
        MYSQL        (         )

    

   READ UNCOMMITTED
   SELECT
          ( COMMIT),        

   READ COMMITTED
       COMMIT       
      ,   SELECT         

   REPEATABLE READ(  )
             ,         COMMIT     
      ,   SELECT       (      ,   )

   SERIALIZABLE
 REPEATABLE READ  ,    SELECT        

    
      ,