mysql事务讲解

本文介绍了MySQL的存储引擎,包括支持事务的InnoDB和不支持的MyISAM、MEMORY。详细阐述了ACID特性,即原子性、一致性、隔离性和持久性,并解释了事务的创建过程。此外,还讨论了事务的隔离级别,如脏读、不可重复读和幻读,以及MySQL的默认隔离级别。最后,提到了如何查看和设置事务隔离级别。
摘要由CSDN通过智能技术生成

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 隔离级别;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值