热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

事务的基本特性和隔离级别

事务的基本特性ACID分别是:原子性指的是一个事务中的操作要么都成功,要么都失败。一致性指的是数据库总是从一个一致性状态转移到另外一个一致性状态。比如A转账给B100块钱,假设A只

事务的基本特性ACID分别是:

原子性指的是一个事务中的操作要么都成功,要么都失败。

一致性指的是数据库总是从一个一致性状态转移到另外一个一致性状态。比如A转账给B100块钱,假设A只有90块,支付之间我们数据库里面的数据都是符合约束的,但是如果事务执行成功了,我们的数据库数据就破坏了约束,因此事务不能成功,这里我们说事务提供了一致性的保证。

隔离性指的是一个事务的修改在最终提交之间,对其他事务是不可见的

持久性指的是一旦事务提交,所作的修改就会永远保存在数据库中

隔离性有四个隔离级别,分别是:



  • read uncommit 读未提交,可能会读到其他事务未提交的数据,也叫做脏读。


用户本来应该读取到id=1的用户age应该是10,结果读取到了其他事务还没有提交的事务,读取结果age=20,这就是脏读




  • read commit 读已提交,两次读取结果不一致,也叫做不可重复度


读已提交解决了脏读问题,他只会读取已经提交的事务

用户A开启事务读取id=1用户,查询到age=10,再次读取发现结果=20,在同一个事务里面查询到不同的结果叫做不可重复读。




  • repeatable read 可重复读,这是mysql的默认级别,就是每次读取结果都一样,但是有可能产生幻读。

  • serializable 串行化,一般不会使用,他会给每一行读取的数据加锁,会导致大量超时和锁竞争的问题。



推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Navicat Premium 15 安装指南及数据库连接配置
    本文详细介绍 Navicat Premium 15 的安装步骤及其对多种数据库(如 MySQL 和 Oracle)的支持,帮助用户顺利完成软件的安装与激活。 ... [详细]
  • 数据管理权威指南:《DAMA-DMBOK2 数据管理知识体系》
    本书提供了全面的数据管理职能、术语和最佳实践方法的标准行业解释,构建了数据管理的总体框架,为数据管理的发展奠定了坚实的理论基础。适合各类数据管理专业人士和相关领域的从业人员。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • Windows 系统下 MySQL 8.0.11 的安装与配置
    本文详细介绍了在 Windows 操作系统中安装和配置 MySQL 8.0.11 的步骤,包括环境准备、安装过程以及后续配置,帮助用户顺利完成数据库的部署。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 本文详细介绍如何下载并安装MySQL数据库(5.7.10版本),以及配置Navicat管理工具(免费版)。通过本指南,您将了解从下载到安装的完整流程,并掌握基本的数据库管理技能。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • 本文探讨了在处理大量物联网设备时,如何合理设计关系型数据库来高效记录设备的上下线历史,确保数据的可维护性和扩展性。 ... [详细]
author-avatar
手机用户2502887873
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有