mysql事物介绍_MySQL--事务介绍
一、事务介绍
1.事物的周期
1)成功的周期
begin;
sql1;
sql2;
sql3;
...
commit;
2)失败的周期
begin;
sql1;
sql2;
sql3;
...
rollback;
2.事务的特性
A:原子性
C:一致性
I:隔离性
D:持久性
二、事务的日志
1.redo log
redo,顾名思义“重做日志”,是事务日志的一种
1)作用
在事务ACID过程中,实现的是“D”持久化的作用。
REDO:记录的是,内存数据页的变化过程
特性:WAL(Write Ahead Log)日志优先写
2)图解
3)文字描述流程
#修改
1)首先将表中id=1的行所在数据页加载到内存中data buffer page
2)MySQL实例在内存中将id=1的数据页改成id=2
3)id=1变成id=2的变化过程会记录到,redo内存区域,也就是redo buffer page中
4)当敲下commit命令的瞬间,MySQL会将redo buffer page写入磁盘区域redo log
5)当写入成功之后,commit返回ok
#查询
1.首先将表中id=1的行所在数据页加载到内存中data buffer page
2.将redo log中id=1变成id=2的变化过程取加载到redo buffer page
3.通过data buffer page和redo buffer page得到一个结果
2.undo log
undo,顾名思义“回滚日志”,是事务日志的一种
1)作用
在事务ACID过程中,实现的是“A”原子性的作用。当然CI的特性也和undo有关。
· 当断电,或者未将数据commit提交,则在undo buffer page undo缓存区则不会有记录
· 当用户查询数据,则会从date buffer page、redo buffer page redo缓存区和undo buffer page undo缓存区中同时拿取数据,但是最后以undo buffer page 也就是undo缓存区中生效。
· 总的来说,就是只要没有commit则数据就不会生效,也就是回滚日志,当用户在查询就只会是初始未修改数据
2)图解
3.redo和undo的存储位置
#redo位置
[root@db01 data]# ll /application/mysql/data/
-rw-rw---- 1 mysql mysql 50331648 Aug 15 06:34 ib_logfile0
-rw-rw---- 1 mysql mysql 50331648 Mar 6 2017 ib_logfile1
#undo位置
[root@db01 data]# ll /application/mysql/data/
-rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata1
-rw-rw---- 1 mysql mysql 79691776 Aug 15 06:34 ibdata2
三、事务中的锁
1.什么是锁
“锁”顾名思义就是锁定的意思。
2.作用
在事务ACID特性过程中,“锁”和“隔离级别”一起来实现“I”隔离性的作用。
3.锁的类别
排他锁:保证在多事务操作时,数据的一致性。(在我修改数据时,其他人不得修改)
共享锁:保证在多事务工作期间,数据查询时不会被阻塞。
乐观锁:多实务操作时,数据可以同时修改,谁先提交,以谁为准
悲观锁:多实务操作时,数据只有一个人可以修改
4.多版本并发控制
1.只阻塞修改类操作(排他锁),不阻塞查询类操作(共享锁)
2.乐观锁的机制(谁先提交谁为准)
5.锁的粒度
1.MyIsam:表级锁
2.Innodb:行级锁
四、事务中的隔离级别
1.四种隔离级别
1.RU级别:READ UNCOMMITTED(独立提交):未提交读,允许事务查看其他事务所进行的未提交更改
2.RC级别:READ COMMITTED:允许事务查看其他事务所进行的已提交更改,查看不需要重新记入数据库
3.RR级别:REPEATABLE READ:允许事务查看其他事务所进行的已提交更改,查看数据需要重新进入数据库(InnoDB 的默认级别)
4.串行化:SERIALIZABLE:将一个事务的结果与其他事务完全隔离
2.查看隔离级别
#查看隔离级别(默认为rr级别)
mysql> show variables like '%iso%';
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| tx_isolation | REPEATABLE-READ |
+---------------+-----------------+
3.设置隔离级别
1)设置RU级别
[root@db03 ~]# vim /etc/my.cnf
transaction_isolation=read-uncommit
2)设置RC级别
[root@db03 ~]# vim /etc/my.cnf
transaction_isolation=read-commit
4.名词
1.脏读:RU级别,执行事务修改数据,被读取,但是数据最终回滚了,查询到的数据就是脏读
2.幻读:删除所有表数据,删除的同时有人插入数据,查看数据时以为是没删干净
3.不可重复读:修改数据后被读取,被读取之后再次修改数据,两次数据不一致
mysql事物介绍_MySQL--事务介绍相关推荐
- mysql事物介绍_MySQL事务介绍
从事务理论的角度来说,可以把事务分为以下几种类型: 扁平事务类型(Flat Transaction) 带有保存点的扁平事务(Flat Transaction with Savepoints) 链事务( ...
- mysql事物 总结_Mysql事务总结
数据库 事务的特性ACID 事务(Transaction)是并发控制的基本单位. 所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位.例如,银行转帐工作:从一个帐 ...
- spring mysql事物级别_mysql事务级别和spring中应用
一.事务的基本要素(ACID) 1.原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节.事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有 ...
- 什么是mysql事物定义_Mysql事务原理
1. 什么是数据库事务 1.1 事务的应用场景 电商平台中例如常见的下单流程,会同时操作订单表,库存表等,有时候这些操作要在一个事务里面完成.还有金融系统业务的银行转账,需要保证一个账户增加另一个账户 ...
- mysql分区要求_MySQL 分区介绍总结
介绍 分区是指根据一定的规则将一个大表分解成多个更小的部分,这里的规则一般就是利用分区规则将表进行水平切分:逻辑上没有发生变化但实际上表已经被拆分成了多个物理对象,每个分成被划分成了一个独立的对象.相 ...
- mysql ib_logfile 数量_Mysql 事务日志(Ib_logfile)
mysql的innodb中事务日志ib_logfile(0/1) 概念: 事务日志或称redo日志,在mysql中默认以ib_logfile0,ib_logfile1名称存在,可以手工修改参数,调节开 ...
- mysql+nest+嵌套事务_MySQL——事务
事务(Transaction)是数据库区别于文件系统的重要特性之一,事务会把数据库从一种一致状态转换为另一种一致状态. 关键词事务四大特性ACID MySql事务隔离级别 MVCC多版本并发控制实现方 ...
- 什么是mysql事物定义_MySQL中事务概念的简洁学习教程
事务是由一步或几步数据库操作序列组成逻辑执行单元,这系列操作要么全部执行,要么全部放弃执行.程序和事务是两个不同的概念.一般而言:一段程序中可能包含多个事务. 事务具有四个特性:原子性(Atomici ...
- mysql的基本介绍_mysql基本介绍
IBM 2 MySql 基础知识 2.1 关系结构数据模型数据库 2.2 SQL... 常用mysql command 介绍 MySQL 常用操作基本操作,以下都是 MySQL5.0 下测试通过首先说 ...
- mysql索引参数_MySQL索引介绍
索引由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度. 创建索引是指在某个表的一列或者多列上建立一个索引,用来提高对表的访问速度, 创建索引由三种方法:在创建表的时候创建,在已存在的 ...
最新文章
- 安卓x86_Android:虚拟机体验基于安卓10的BlissOS V12.2 Android X86版
- idea中链接mysql查询_在Idea中编写Java程序连接查询Sqlite数据库
- jQuery避免$符和其他JS库冲突的方法对比
- SpringMVC 测试 mockMVC
- windows下PostgreSQL 安装与配置
- 东北大学计算机生源,辽宁省2021年普通高校招生计划,东北大学、大连理工大学没有扩招...
- 微软笔试题-c语言-算法分析
- 数据结构之——拓补排序和并查集
- 我讨厌单元测试:滕振宇谈如何进行单元测试
- 微软windows自带邮箱设置和使用(更改windows10账户绑定邮箱)qq邮箱绑定windows邮箱,163邮箱绑定windows邮箱,阿里云邮箱绑定windows邮箱
- emif接口速率问题_各种总线传输速率总结
- 了解软件工程与计算机科学的联系与区别
- 外贸企业电子邮箱哪个好?外贸邮箱怎么选择?
- 服务器微信了早上好,每天问候早上好的微信话语
- 《c语言修炼内功之第二种境界(看代码就是内存)之关键字系列一》
- 淘宝芝麻信用分提升方法技巧
- 1.Kafka下载安装
- 操作系统真象还原——12.初见MBR
- 文章出轨 马伊琍及其家人选择原谅 父亲被称为中国好岳父
- i711800h和r54600h哪个好