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锁机 ...
随机推荐
- A1070
给出总价和需求量,求最大收益. 思路:求单价最高的,排序. #include<cstdio> #include<algorithm> using namespace std; ...
- [Golang学习笔记] 01 工作区和GOPATH
Go语言3个环境变量: GOROOT:GO语言按照根路径,也就是GO语言的安装路径. GOPATH:若干工作区目录的路径.是我自己定义的工作空间. GOBIN:GO程序生成的可执行文件(executa ...
- EAC 抓取CD为AAC文件
下载EAC v1.3 下载FAAC 安装完EAC以后进入主界面,选菜单EAC->compression option,如图: 选User Defined Encoder,选择之前解压好的faac ...
- React 组件间通信
https://jsfiddle.net/69z2wepo/9719/ <script src="https://facebook.github.io/react/js/jsfiddl ...
- mycp 补交作业
老师好:我昨天做完时已经是11点多了,错过了提交时间,希望用此篇博客弥补一下我的过失. import java.io.; import java.lang.; import java.util.Sca ...
- 关于homebrew使用时遇到的问题: Error: Could not symlink bin/gdb/usr/local/bin is not writable.
# 关于homebrew使用时遇到的问题: Error: Could not symlink bin/gdb/usr/local/bin is not writable. 这是我在给我的Mac电脑安装 ...
- 在windows上搭建redis集群(redis-cluster)(转载)
一 所需软件:Redis.Ruby语言运行环境.Redis的Ruby驱动redis-xxxx.gem.创建Redis集群的工具redis-trib.rb 二 安装配置redis redis下载地址 ...
- day 3 私有属性,私有方法,__del__
1.隐藏对象的属性 如果有一个对象,当需要对其进行修改属性时,有2种方法 对象名.属性名 = 数据 ---->直接修改 对象名.方法名() ---->间接修改 1)版本1:直接修改 对象的 ...
- Drupal7重置密码方法
Drupal版本 7.40 方法1: 根目录index.php添加 require_once 'includes/password.inc'; require_once 'includes/boots ...
- SQL基本的45题
-- 查询Student表中的所有记录的Sname.Ssex和Class列.SELECT Sname,Ssex,Class from student -- 查询教师所有的单位即不重复的Depart列. ...