当前位置:网站首页>mysql事务讲解

mysql事务讲解

2022-06-25 18:22:00 破 风

mysql存储引擎

          查看引擎方式:SHOW ENGINES;

          在存储引擎里面不是所有存储引擎都支持事物的,innodb在5.0版本以后是支持事物的,而myisam和memory是不支持事物的。

 mysql事务特性ACID

                原子性:  事务不可分割,要么全部成功要么全部失败,捆绑式执行。

                一致性:  必须保持数据一致,如转账的话一边加一千一边减一千,总金额为

                                两千,(一个数据的一致状态到另一个数据的一致状态)不管怎么操作

                                总数据一定是不会变的。

                隔离性:  一个事务在执行的时候是不能被其他事物干扰的,其他事物要想执行可以加锁


                持久性:  一个事务一但执行就不能被修改,一但提交到数据库数据将被永久修改。

事务创建 : 

        隐式事物 : 比如我们平时执行的insert、update、delete。他都会默认帮我们开启隐式事物的。

        显示事物 : 事务具有明显的开启和结束的标记。但是前提是必须先设置自动提交功能为禁用

        

开启流程:
        自动提交功能关闭
        set autocommit=0;
        开启事物
        start transaction;
        编写SQL语句增删改查......
        成功:commit;提交事物
        失败:rollback;事物回滚

   事务隔离机制:       

        脏读 :针对的是查询,指两个事务同时进行数据操作,读取到的数据不一样。

        不可重复读:指数据读取一次就不能在重复进行读取了,避免两次数据读取的不一致。

        幻读:幻读一般是指添加和删除,表示第一次读取到了数据以后第二次读取到的数据多了

                    一行或者少了一行,这就叫幻读。

     事务隔离级别:

                    脏读       不可重复读       幻读
read uncommitted     √           √               √
read committed       ×           √               √
repeatable read      ×           ×               √
serializable         ×           ×               ×

mysql中默认的是 repeatable read 隔离级别
查看隔离级别命令: select @@tx_isolation;
设置隔离级别命令: set session|global transaction isolation level 隔离级别;

原网站

版权声明
本文为[破 风]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_38935605/article/details/121268755