欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > MYSQL 事务

MYSQL 事务

2025/2/24 17:51:39 来源:https://blog.csdn.net/m0_64022419/article/details/143725024  浏览:    关键词:MYSQL 事务

1、事务

        什么叫事务?

        事务就是将一组工作看做一个整体去完成,要么同时成功,要么同时失败,并且遵守ACID事务四大特性。

2、事务操作

        1、查看事务提交状态

        SELECT @@autocommit;

        2、设置事务的提交方式,0为手动,1为自动

        SET @@autocommit=0;

        3、提交事务

        COMMIT

        4、回滚事务

        ROLLBACK

        5、手动开启事务

        START TRANSACTION 或 BEGIN 

手动开启事务就必须手动提交事务,默认事务是自动开启的,设置事务的提交方式是手动需要手动提交。

3、事务的四大特性ACID

        原子性(Atomicity)、一致性(Consistant)、隔离性(Isolation)、持久性(Durability)

        原子性:每个事务可操作的最小单位。

        一致性:事物之间操作前后应该保持一致

        隔离性:事务直接操作不应该互相影响

        持久性:数据库操作后放入硬盘中,保持持久

4、并发事务问题

        脏读:一个事务读取到另一个事务还没有提交的数据,没有提交说明改事务还没结束。

        不可重复读:两次读取同一个数据发生结果不一致的结果,因为第二次读取事务之前,别的事务将该条数据修改提交了,所以读取到的数据前后不一致。

        幻读:一个事物读取id=1的某条数据,查询结果显示没有该条数据,此时插入id=1的的数据发生插入失败,感觉到好像有此条数据,是事务A进行查询的时候B事务进行插入,此时查是查不到的。

5、解决并发实物问题(MYSQL默认是可重复读)

        

隔离级别解决对应事务脏读         不可重复读幻读        
读未提交×××
读已提交××
可重复读×
串行化

         1、查看事务隔离级别

                SELECT @@TRANSACTION_ISOLATION;

        2、设置事务隔离界别

                SELECT [SESSION|GLOBAL] TRANSACTION ISOLATION LEVEL {READ UNCOMMITTED|READ COMMITTED|REPEATABLE READ|SERIALIZABLE}

        SERIALIZABLE串行化的实物隔离级别开启后只有别的事务结束了才能继续进行,也就是说事务的隔离级别越高,并发性能越差,但是越安全。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词