MySQL事务与隔离级别如何使用


这篇文章主要介绍“MySQL事务与隔离级别如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“MySQL事务与隔离级别如何使用”文章能帮助大家解决问题。事务就是一组操作的集合,事务将整组操作作为一个整体,共同提交或者共同撤销这些操作只能同时成功或者同时失败,成功即可提交事务,失败就执行事务回滚MySQL的事务默认是自动提交的,一条语句执行成功,MySQL将会隐式的提交事务以转账为例,张三向李四转账1000元这个整体行为包含三个操作:首先查询张三账户的余额,其次将张三账户余额-1000,最后将李四账户余额+1000。事务就是将这三个操作看作最小提交单元,就是一荣俱荣一损俱损。原子性Atomicity:一组操作为最小执行单元,只能全部执行成功或者全部失败一致性Consistency:事务完成后,所有数据都要保持一致状态一致性表示事务完成后,数据操作前后符合逻辑运算,状态一致隔离性Isolation:是指在并发操作数据库时,各个事务之间不会相互影响持久性Durability:事务一旦提交或回滚,对于数据库的修改将会永久保存两个事务A和B在并发下操作数据库中的同一数据时,当事务A对数据进行了修改但是还没有commit的同时,事务B对该数据进行了select,此时事务B读取到的数据就是不准确的。这种情况叫做脏读事务B读取到了事务A修改但还未提交的数据—->脏读同样事务AB并发下操作数据库中同一数据,首先事务A对该数据进行查询,查询之后又进行了免费云主机域名其他操作。与此同时,事务B执行了更新操作并且成功commit。那么当事务A再次对数据库查询的时候就会出现与上次读取到的数据不一致的情况事务AB并发下操作数据库中同一数据,事务A首先查询了数据库中是否有id=1的数据,没有就插入。那么此时事务A未查询到该数据存在,同时事务B执行了插入操作插入了id=1的数据并且提交。那么事务A再去插入的时候则会报主键冲突的错误,但是当事务A再一次去查的时候发现id=1的数据仍然是不存在( 前提是已经解决了不可重复读的问题,一个事务多次访问同一数据的结果是一致的 ),这种情况就称之为幻读隔离级别 –> 无法解决 √ –> 可以解决在sql中查看当前事务隔离级别设置当前事务隔离级别session是指尽在当前会话中使用该事务隔离级别,global表示全局有效四种事务隔离级别当中,Serializable可序化级别最高。要求序列化执行sql指令,事务只能一个接一个的执行,不允许并发执行。性能低下,而Read Uncommitted读未提交性能最好,但是存在脏读问题等。关于“MySQL事务与隔离级别如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: SpringBoot怎么整合JdbcTemplate

本篇内容介绍了“SpringBoot怎么整合JdbcTemplate”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处免费云主机域名理这些情况吧!希望大家仔细阅读,能够学有所成!Spring对数据库的操作在jd…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 05/14 19:22
下一篇 05/14 19:22

相关推荐