热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

事物中的ACID四性-mysql教程

事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).。1,最容易困惑的是原子性和一致性,先谈这俩:原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的

事务的四大属性ACID即事务的 原子性(Atomicity)、一致性(Consistency)、隔离性 (Isolation)、持久性(Durability).。 1,最容易困惑的是原子性和一致性,先谈这俩: 原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的

事务的四大属性ACID即事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability).。

1,最容易困惑的是原子性和一致性,先谈这俩:
原子性:事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。

一致性: 事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。
有朋友会问,那我保证了原子性,不就可以保证一致了么?这里的关键区别在于,事务的操作边界定义。对于一直事务里有哪些操作,这个是自定义的,而一致性是针对业务逻辑本身而言的。比如你定义一个事务,里面的操作是A,B,C三步,系统原子性能保证的是这三步要么都执行,要么都不执行,不可拆分。但是有可能你这三部破坏了数据的一致性,比如你定义了从A账户划拨200块给B账户。如果你的事务里只包含从A账户扣款,而不包含B账户加钱。那么系统保证原子性后,能保证要么从A账户都扣款成功,要么都不成功,不会出现扣了一半款之类的异常情况。但是没办法保证B账户加钱了。所以A账户扣款,B账号加钱,这是一个连续的动作,业务逻辑上要保证一致性,所以必须把两个步骤放在一个事务里,这样才能保证一致性。
换而言之,原子性是系统能够提供的功能,而一致性是根据业务逻辑,有用户自定义事务的边界来保证的。两者缺一不可。

2,隔离性
事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
3,持久性
持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响。
推荐阅读
  • 深入解析PHP Xdebug的安装与应用
    本文详细介绍了PHP Xdebug的安装步骤及其在PHP开发中的重要作用。Xdebug作为一款强大的调试工具,不仅能够帮助开发者追踪代码执行过程,还能有效提升代码质量和系统性能。 ... [详细]
  • 本文对唐代诗人王建的《泛水曲》进行详细的赏析和翻译,探讨其文学价值及艺术特色。 ... [详细]
  • 本文探讨了HDU 4035的问题,涉及一个由n个房间组成的迷宫,这些房间通过n-1条隧道相互连接,形成一棵树结构。任务是从起点1号房间出发,计算到达出口所需经过的平均隧道数量,考虑了在每个房间中可能发生的三种情况及其相应概率。 ... [详细]
  • 软件项目管理实践——Jenkins持续集成与Maven、GitHub的应用
    本文详细介绍了如何利用Jenkins实现持续集成,以及Maven和GitHub在项目开发中的具体应用。包括环境搭建、工具安装、项目创建及代码管理等关键步骤。 ... [详细]
  • 本文详细介绍了在Hive中创建表的基本语法,包括临时表、外部表的创建方法,以及如何设置表的各种属性和约束条件。 ... [详细]
  • 浩方对战平台账户注册指南
    作为一款深受学生和年轻人喜爱的游戏对战平台,浩方对战平台不仅提供了如《魔兽RPG》、《星际争霸》等经典游戏的对战环境,还是许多玩家交流技巧、结交朋友的好去处。本文将详细介绍如何轻松完成浩方对战平台的账户注册。 ... [详细]
  • InnoDB中Serializable隔离级别的实现机制
    在数据库的最高隔离级别——Serializable下,当一个事务(如事务A)正在对某一行进行修改时,任何其他试图读取或修改该行的事务(如事务B)都必须等待,直到事务A完成并释放其写锁。这一机制确保了所有操作都能以一种线性化的顺序执行,避免了并发带来的数据不一致问题。 ... [详细]
  • Kafka 示例项目中 Log4j 的配置与调试
    本文详细介绍了如何在 Kafka 源码中的示例项目配置 Log4j,以确保能够正确记录日志信息,帮助开发者更好地理解和调试代码。 ... [详细]
  • 本文介绍如何利用Python中的Epoll机制构建一个高效的Web服务器,该服务器能够处理多个并发连接,并向每个连接的客户端返回预定义的响应文本。通过使用Epoll,服务器可以实现高性能的I/O多路复用。 ... [详细]
  • 多版本CUDA共存与即时切换方案
    本文探讨了在同一台机器上安装并管理多个CUDA版本的方法,以适应不同软件或项目的需求。特别是在使用旧版PyTorch等依赖特定CUDA版本的软件时,该方法尤为实用。 ... [详细]
  • 一、数据更新操作DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据、修改数据、删除数据。其中这些操作是离不开查询的。1、增加数据语法:INSERTINTO表名称[(字 ... [详细]
  • 本文提供了唐代诗人高瑾的《晦日重宴》一诗的现代汉语翻译及其艺术特点的赏析。 ... [详细]
  • 本文详细介绍了如何通过Percona插件监控MySQL 5.7数据库,包括环境准备、插件安装、配置调整及数据测试等步骤,旨在为用户提供一个高效且稳定的监控解决方案。 ... [详细]
  • 本文介绍了如何通过安装 VirtualBox 和 Vagrant 来快速搭建和管理虚拟机环境。我们将详细探讨如何选择合适的 Box 镜像,以及如何高效地下载、添加和管理这些镜像。 ... [详细]
  • Django框架的使用教程mysql数据库[三]
    Django的数据库1.在Django_test下的view.py里面model定义模型fromdjango.dbimportmodels#Createyourmodelshere ... [详细]
author-avatar
漂亮女人群
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有