MySQL——InnoDB事务
事务:全部成功 或 全部失败!
---------------------------------------------------------------------------------------------- 1、原子性:全部成功或全部取消。 2、一致性:如果数据库在事务开始时处于一致状态,则在执行该事物期间将保留一致状态。 3、隔离性:事物之间不相互影响。 4、持久性:事务成功完成后,所做的所有改变将准确地记录在数据库中,所做的更改不会丢失。 ---------------------------------------------------------------------------------------------- 5、事务SQL控制语句:
----MySQL5.5之后默认自动提交模式,不需要begin或start transaction语句,默认开启autocommit模式。 ----可以通过以下命令修改关闭(0是关闭,1是开启): (1)临时生效:
SET GLOBAL AUTOCOMMIT=0; ---- 所有新建会话
SET SESSION AUTOCOMMIT=0; ---- 当前会话
SELECT @@AUTOCOMMIT; ---- 查看设置结果 (2)永久生效:
vim /etc/my.cnf [mysqld]
AUTOCOMMIT=0 ----标记:
事务开始:begin / start transaction
MySQL5.5之后,自动开启“开始”,不需要手工录入 事务结束:commit 事务撤销(回滚):rollback 6、导致事务提交的非SQL事务控制语句(隐式提交):
DDL: alter / create / drop ... DCL: grant / revoke / set password ... 锁定语句: lock tables / unlock tables ... 7、事务日志redo
redo: 重做日志,事务日志的一种。
(1)记录内存页的变化。
(2)是为了提高数据持久化的一种特性。 (4)redo工作原理:
MySQL在对数据进行修改的时候,是在内存中进行的,提交后才会写到磁盘中,
同时在修改数据的过程中,redo会在数据修改的过程中,对更改信息定时写到磁盘
中,但是如果事务执行失败,redo会重做日志,将磁盘更改信息恢复到修改之前。 8、事务日志undo
undo:回滚日志,事务日志的一种。 (1)undo工作原理:
MySQL在对数据进行修改的时候,是在内存中进行的,提交后才会写到磁盘中,
在开始修改之前undo会对当前的状态进行“拍照”,同时undo会在数据修改
的过程中,对更改信息定时写到磁盘中,但是如果事务执行失败,undo会用
之前的“照片”覆盖更改信息,将磁盘更改信息恢复到修改之前。 9、LSN(redo/undo中)
LSN:日志版本号、或叫日志序列号 10、事务中的锁(锁定)(性能高于MyISAM)(高并发锁:行级锁---->可以只锁一行)
四种隔离级别:
----READ UNCOMMITTED
允许事务查看其它事务所进行的未提交更改 ----READ COMMITTED
允许事务查看其它事务所进行的已提交更改 ----REPEATABLE READ***
确保每个事务的 SELECT 输出一致
InnoDB的默认级别 ----SERIALIZABLE
将一个事务的结果与其它事务完全隔离
MySQL——InnoDB事务的更多相关文章
- 搞懂MySQL InnoDB事务ACID实现原理
前言 说到数据库事务,想到的就是要么都做修改,要么都不做.或者是ACID的概念.其实事务的本质就是锁和并发和重做日志的结合体.那么,这一篇主要讲一下InnoDB中的事务到底是如何实现ACID的. 原子 ...
- Mysql InnoDB事务
http://www.cnblogs.com/benshan/archive/2013/01/19/2867244.html 事务的四个特性 1.原子性(atomicity)原子性是指整个数据库事务是 ...
- MySql - InnoDB - 事务 , Php版
(出处:http://www.cnblogs.com/linguanh/) 1,前序 由于要重构APP(社交类) 服务端接口的部分代码,故接触到了 innoDB,以及事务这个词,下面主要是以例子的形式 ...
- MySQL InnoDB 事务实现过程相关内容的概述
MySQL事务的实现涉及到redo和undo以及purge,redo是保证事务的原子性和持久性:undo是保证事务的一致性(一致性读和多版本并发控制):purge清理undo表空间背景知识,对于Inn ...
- 一文快速搞懂MySQL InnoDB事务ACID实现原理(转)
这一篇主要讲一下 InnoDB 中的事务到底是如何实现 ACID 的: 原子性(atomicity) 一致性(consistency) 隔离性(isolation) 持久性(durability) 隔 ...
- mysql innodb事务的ACID及其实现的保证机制
MySQL事务的ACID,一致性是最终目的.保证一致性的措施有:A原子性:靠undo log来保证(异常或执行失败后进行回滚).D持久性:靠redo log来保证(保证当MySQL宕机或停电后,可以通 ...
- MySQL InnoDB四个事务级别 与 脏读、不反复读、幻读
MySQL InnoDB事务隔离级别脏读.可反复读.幻读 希望通过本文.能够加深读者对ySQL InnoDB的四个事务隔离级别.以及脏读.不反复读.幻读的理解. MySQL InnoDB事务的隔离级别 ...
- MySQL InnoDB MVCC
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...
- MySQL InnoDB 实现高并发原理
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...
随机推荐
- Winform中生成自动控件
场景: 前几天项目需要模拟数据,但是实际设备还没有接上,就自己用Winform搭建了一个数据模拟器,生成数据给平台.这里又一个需求,就是从数据库中找出设备,然后自动生成控件,勾选就表示开启该设备,能上 ...
- Spring Data Commons 远程命令执行漏洞(CVE-2018-1273)
影响版本 Spring Framework 5.0 to 5.0.4 Spring Framework 4.3 to 4.3.14 poc https://github.com/zhzyker/exp ...
- noip模拟29[简单的板子题](虽然我不会)
\(noip模拟29\;solutions\) 这次考试给我最大的伤害,让我意识到了差距 这场考试可以说是非常的简单,就是简单到,看两眼,打个表就有结果了 但是呢?我考得非常的完蛋,只有30pts 据 ...
- Python设计模式: 最佳的"策略"模式实践代码
Python设计模式: 最佳的"策略"模式实践代码 今天抽空看了下流畅的python,发现里面介绍了不少python自带的库的使用实例,用起来非常的优雅. 平时用Python来写爬 ...
- 利用MySQL原数据信息批量转换指定库数据表生成Hive建表语句
1.写出文件工具类 package ccc.utile; import java.io.*; /** * @author ccc * @version 1.0.0 * @ClassName Write ...
- Vue 脚手架学习
首先就是安装脚手架 npm install @vue/cil -g 全局安装 在这里我遇到一个问题:安装不了脚手架,报错显示: 通过苦逼的查找原因就是 以前使用的taobao镜像 导致的,删除镜像换成 ...
- 免费个人图床搭建gitee+PicGo
我们写博客的时候经常会需要配图,特别是markdown写的时候只能通过网络链接来展示图片. 首先来说存储仓库.测试过几款存储图片的仓库,最终选择方案3: 1.阿里OSS需要付费,空间和流量双向收费,对 ...
- 去掉文件中的^M
一般情况下用:set ff=unix就可以解决问题,如果无效,用下面的方法手工完成: :%s/[ctrl+v] [ctrl+m]//g ctrl+v表示按住Ctrl键再按下v键.
- Special Forms and Syntax Sugars in Clojure
(...): function literals, p40, 64; '(...): suppress evaluation, p24; _(...): comments, p18; ".. ...
- 软件开发目录规范 ATM框架构建
软件开发的目录规范 建立文件夹 为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要.软件的目录规范并无硬性标准,只要清晰可读即可 以ATM购物车项目为例: 首 ...