MySQL:事物ACID特性
MySQL事物的ACID特性
- 前言
- 一、原子性(atomicity)
- 二、一致性(consistency)
- 三、隔离性(isolation)
- 四、持久性(durability)
前言
事物指的是:一组逻辑单元,使数据从一种状态转移到另外一种状态。事物处理的原则是:保证所有的操作都作为一个工作单元来执行,即使出现故障,都不能改变这种执行方式。当在一个事物中执行多个操作时,要么所有的事物都被提交,要么数据库将放弃所有的修改,整个事物回滚到最初状态
一、原子性(atomicity)
原子性是指事物是一个不可分割的工作单位,要么全部提交,要么全部失败回滚
二、一致性(consistency)
一致性是指事物执行前后,数据从一个合法性状态变换到另外一个合法性状态,这种状态是语义上的,而不是语法上的,跟具体业务有关
合法的数据状态是指满足预定的约束。状态是由自己来定义的(比如满足现实世界中的约束)。满足这个状态,数据就是一致的,不满足这个状态,数据就是不一致的。如果事物中的某个操作失败了,系统就会自动撤销当前正在执行的事物,返回到事物操作之前的状态
三、隔离性(isolation)
事物的隔离性是指一个事物的执行不能被其他事物干扰,即一个事物内部的操作及使用的数据对并发的其他事物是隔离的,并发执行的各个事物之间不能互相干扰
四、持久性(durability)
持久性是指一个事物一旦被提交,它对数据库中数据的改变是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响
持久性是通过事物日志来保证的,日志包括了重做日志和回滚日志。当我们通过事物对数据进行修改时,首先会将数据库的变化信息记录到重做日志中,然后再对数据库中对应的行进行修改。这样做的好处是,即使数据库系统奔溃,重启后也能找到没有更新到数据库系统中的重做日志,重新执行,从而使事物具有持久性
MySQL:事物ACID特性相关推荐
- 深入理解Mysql事务ACID特性以及事务隔离级别
事务的概念: 1.事务是一组sql语句的执行,要么全部成功,要么全部失败.保证事务执行的原子性. 2.事务的全部sql语句执行成功,才能提交,将结果写回到磁盘上. 3.事务执行过程中,有的SQL执行失 ...
- 不属于mysql事物的特性_mysql基础---事务 事务的四大特性(ACID) 四种隔离级别
一.事务 mysql中,事务是一个最小的不可分割单元.事务能够保证一个业务的完整性. eg:银行转账 a -> -100 update user set money=money-100; b - ...
- MySQL事务ACID特性
一.事务的基本要素(ACID) 1.原子性(Atomicity):MySQL事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操 ...
- 数据库的事务ACID特性以及MySQL如何保持事物特性
数据库的ACID特性 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响 ...
- 详述MySQL事务及ACID特性的实现原理
" 事务是 MySQL 等关系型数据库区别于 NoSQL 的重要方面,是保证数据一致性的重要手段. 本文将首先介绍 MySQL 事务相关的基础概念,然后介绍事务的 ACID 特性,并分析其实 ...
- 谈谈MySQL InnoDB存储引擎事务的ACID特性
2019独角兽企业重金招聘Python工程师标准>>> 1.前言 狼哥一直对数据库Mysql这块没有进行过系统的深入学习,今天看到一篇文章写的还不错,特意分享一下,我不能保证文章中所 ...
- ACID特性的实现原理与MySQL事务的关系
深入学习MySQL事务:ACID特性的实现原理 事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID ...
- MySql:事务的ACID特性
目录 一.事务概念 二.事务的ACID特性 一.事务概念 定义: 一个事务是由一条或者多条SQL语句所组成的一个不可分割的单元,只有事务中的所有操作都正常执行完,那么整个事务才能被提交到数据库.如果有 ...
- MySQL事务原理分析(ACID特性、隔离级别、锁、MVCC、并发读异常、并发死锁以及如何避免死锁)
MySQL事务原理分析(ACID特性.隔离级别.锁.MVCC.并发读异常.并发死锁以及如何避免死锁) 一.事务 目的 组成 特征 事务空间语句 二.ACID特性 原子性(A) 隔离性(I) 持久性(d ...
最新文章
- 如何使用TensorFlow Eager执行训练自己的FaceID ConvNet
- DDD分层架构最佳实践
- 几种支持REST的Java框架
- 再见,CentOS!
- boost::multi_array模块调整 multi_arrays 大小的测试
- router-link标签学习
- 你真的会发朋友圈吗?
- Hightopo 2D 入门
- html中复选框只能选一个,HTML选择三个不同的复选框并显示它们
- Python绘制XRD图谱和对应pdf卡片堆叠图
- 微信内置浏览器无法下载文件应用的解决方案
- 牛逼,个人开发者可以申请微信支付了!
- 小样本论文笔记5:Model Based - [6] One-shot learning with memory-augmented neural networks.
- layui文件上传后台(带自定参数)
- Qt程序移植到ARM
- 无法启动此程序,因为计算机中丢失rtl70.bpl怎么修复教程
- 微信通过JSSDK分享朋友圈
- eCharts实现多图表切换
- syntax error near unexpected token 脚本报错误解决【转】
- Outlook 错误号 0x800CCC0B,怎么解决?
热门文章
- 信号处理——Hilbert端点效应浅析
- 为什么1个字节(byte)是8个比特(bit)
- Ubuntu server 硬盘挂载教程
- 互动媒体技术作业2优秀博文推荐
- mysql gui tools ojdbc14.jar_OJDBC版本区别 [ojdbc14.jar,ojdbc5.jar和ojdbc6.jar的区别]
- autocomplete触发事件_AutoCompleteBox实现鼠标点击后实现查询功能
- 立体角(Solid Angle)
- Android GreenDao简单使用
- Excel如何将某单元格区域数据随机排序
- android仿ios菊花,android仿IOS 旋转菊花Loading、等待Loading、花瓣