MySQL 事物机制
前言:事物:一组原子性的SQL查询,或多个SQL语句组成了一个独立的单元。要么这一组SQL语句全部执行,要么全部不执行
(一)事物日志介绍:管理事物机制的日志
redo日志:记录SQL执行的语句,这些SQL语句还没有同步到磁盘上,没有修改数据。如果数据奔溃,可以通过撤销SQL执行的语句来进行还原。但是,如果已经同步到磁盘上的SQL语句而言,就只能使用undo来回滚之前的数据了
undo日志:记录没有执行SQL的样子,也就是记录修改数据之前的数据记录下来
(二)ACID测试:用来判断存储引擎是否满足事物机制
A:automicity, 原子性,整个事物中的所有操作要么全部成功提交,要么全部失败回滚
C:consistency , 一致性,数据库总是从一个一致性状态转化为另一个一致性状态
I:isolation, 隔离性,事物不会相互影响,一个事物所作出的操作在提交之前,是不能为其他事物所见,隔离有多种级别,主要是为了并发
D:durability , 持久性,事物一旦提交,其所作的修改会保存在数据库中,不能丢失
事物操作演示1
1:show global variables where Variable_name like '%commit%'; 查看全局变量
2:set session autocommit = OFF; 修改事务日志自动提交功能
3:show variables where Variable_name like ‘%commit%’; 查看当前会话的全局变量
4:start transaction; 启用事务日志机制
5:在表中插入数据,但是不提交(commit)
6:rollback; 事务回滚
事物操作演示2
1:insert into home values (4, 'yhy1', 99); 添加一条记录
2:savepoint first; 设置一个保存点
3:update home set name = 'yhy2' where id = 4; 跟新一条记录
4:savepoint second; 设置第二个保持点
5:insert into home values (5, 'yhy3', 199); 再添加一条记录
6:rollback to second; 回滚到第二个保存点
7:rollback to first; 回顾到第一个保持点
8:commit; 提交数据
MySQL 事物机制的更多相关文章
- MySQL事物机制具备四点:简称ACID操作
MySQL事物机制具备四点:简称ACID操作 1.原子性:要么都做,要么都不做(两条数据(写入和存储)一步未成功,整体回滚) 2.一致性:数据库的状态改变(两条数据(写入和存储)均成功,符合原子性,但 ...
- mysql锁机制和事务隔离
mysql事务 1.InnoDB事务原理 事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致性状态转换为另一种一致性状态. 在数据库提交时,可以确保要么所有修 ...
- MySQL事物原理及事务隔离级别
mysql事物 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取.事务的正确执行使得数据库从一种状态转换为另一种状态. 事务必须服从ISO/IEC所制定的ACID原则.AC ...
- mysql锁机制 读书笔记
目录 MySQL锁机制 1.什么是锁 2.lock与latch 3.InnoDB存储引擎中的锁 3.1锁的类型 3.2 一致性非锁定读 3.3 一致性锁定读 4 锁的算法 4.1行锁的3中算法 4.2 ...
- MYSQL内存--------启动mysql缓存机制,实现命中率100% 转
虽然这个标题夸张得过了头,但此文很完整,值得学习.转自 http://www.yy520.net/read.php?278 myql优化,启动MySQL缓存机制,实现命中率100% 配置你的mysql ...
- Mysql锁机制介绍
Mysql锁机制介绍 一.概况MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制.比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking ...
- mysql事物处理
mysql事物主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你既要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等.这样,这些数据库操作语句就构成一个事 ...
- Mysql锁机制--索引失效导致行锁变表锁
Mysql 系列文章主页 =============== Tips:在阅读本文前,最好先阅读 这篇(Mysql锁机制--行锁)文章~ 在上篇文章中,我们看到InnoDB默认的行锁可以使得操作不同行时不 ...
- mysql锁机制详解
前言 大概几个月之前项目中用到事务,需要保证数据的强一致性,期间也用到了mysql的锁,但当时对mysql的锁机制只是管中窥豹,所以本文打算总结一下mysql的锁机制. 本文主要论述关于mysql锁机 ...
随机推荐
- CDH部署(以5.7.5为例)
博客园首发,转载请注明出处https://www.cnblogs.com/tzxxh/p/9120020.html 一.准备工作(下面的内容括号内写master的表示仅在master节点执行,all代 ...
- TINY4412:移植uboot、内核和挂接网络文件系统
开发环境: 单板:TINY4412-1611 系统:Ubuntu 16.04 64位 编译工具链:arm-linux-gcc-4.3.2 uboot版本:uboot_tiny4412-20130729 ...
- 探秘GO语言《比较C#与GO的性能--XML序列化》
今天对GO和NET的XML字符串序列化成对象列表做了一个性能比较,得出一些结论. GO的代码: package main import ( "encoding/xml" " ...
- 20155318 《Java程序设计》实验三 (敏捷开发与XP实践)实验报告
20155318 <Java程序设计>实验三 (敏捷开发与XP实践)实验报告 实验内容 XP基础 XP核心实践 相关工具 实验步骤 (一)敏捷开发与XP 软件工程是把系统的.有序的.可量化 ...
- 20155330 2016-2017-2 《Java程序设计》第九周学习总结
20155330 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 学习目标 了解JDBC架构 掌握JDBC架构 掌握反射与ClassLoader 了解自定义泛 ...
- PostgreSQL参数学习:vacuum_defer_clean_age
官方文档: http://www.postgresql.org/docs/9.3/static/runtime-config-replication.html 为了防止slave端读取数据时,因为读到 ...
- 【SQLSERVER】索引的维护优化
一.索引的利弊 优点: 1.大大加快数据的检索速度: 2.创建唯一性索引,保证数据库表中每一行数据的唯一性: 3.加速表和表之间的连接: 4.在使用分组和排序子句进行数据检索时,可以显著减少查询中 ...
- day 3 模块
1.系统自带模块 xxx.py 文件 就是模块 ### 模块存放位置 In [1]: import os In [2]: os.__file__ Out[2]: '/usr/lib/python3. ...
- 3110: [Zjoi2013]K大数查询
3110: [Zjoi2013]K大数查询 https://lydsy.com/JudgeOnline/problem.php?id=3110 分析: 整体二分+线段树. 两种操作:区间加入一个数,区 ...
- AngularJS中Directive指令系列
近段时间在研究Angular中的directive用法,打算写个系列.以官方文档为主.并参考诸多教程.加上自己的思考. 基本概念及用法 scope属性的使用. &, <, =, @ 符 ...