事务的概念

事务由单独单元的一个或多个SQL语句组成,在这个单元中,每个MySQL语句是相互依赖的。而整个单独单元作为一个不可分割的整体,如果单元中某条SQL语句一旦执行失败或产生错误,整个单元将会回滚。所有受到影响的数据将返回到事物开始以前的状态;如果单元中的所有SQL语句均执行成功,则事物被顺利执行。

事务的四个属性

1、原子性:事务是由一个或一组相互关联的SQL语句组成,这些语句被认为是一个不可分割的单元,要么都成功要么全回滚。

2、一致性:对于数据库的修改是一致的,即多个用户查的的数据是一样的。一致性主要由mysql的日志机制处理,他记录数据的变化,为事务恢复提供跟踪记录。

3、隔离性:每个事务都有自己的空间,和其他发生在系统中的事务隔离开来,而且事务的结果只在他完全被执行时才能看到

4、持久性:但提交了这个事务之后对数据的修改更新就是永久的。当一个事务完成,数据库的日志已经被更新时,持久性即可发挥其特有的 功效,在mysql中,如果系统崩溃或者数据存储介质被破坏,通过日志,系统能够恢复在重启前进行的最后一次成功更新,可以反应系统崩溃时处于执行过程的事物的变化。

事务的隔离级别

1、读未提交(脏读)READ  UNCOMMITTED

A事务读取到了B事务未提交的数据,脏读

2、读已提交(不可重复度)READ COMMITTED

A事务读取B事务提交的事务,B提交事务前后A读取的数据不一样,所以是不可重复度

3、可重复读(幻读)REPEATABLE  READ  、innoDB默认的事务隔离级别,采用MVCC实现的可重复读

保证同一事务多次读取的数据是一致的,但是会产生幻读

可重复读:

A开启事务查询用户表数据

B开启事务修改了用户表数据并提交

A再查询用户表数据与第一次查询结果一致

幻读:(个人理解是这样,这里有些乱,不太确定是否正确,如果错了请纠正)

A开启事务将用户表所有年龄18的用户修改为年龄19

此时B开始事务,插入了一条年龄为18的用户数据后提交事务;

A查询用户表显示还有一条年龄18的用户数据,产生了幻觉

4、串行化 SERIALIZABLE

串行化是最高的隔离级别。它通过强制事务串行执行,避免了前面说的幻读的问题。简单来说,SERIALIZABLE会在读取每一行数据都加锁,所以可能导致大量的超时和锁争用问题。 在我们实际的开发应用中很少用到这个隔离级别,只有在非常需要确保数据的一致性而且可以接受系统没有并发情况的出现,才会考虑使用该级别。

mysql事务隔离级别详解_MySQL的事务隔离级别详解相关推荐

  1. mysql 事务隔离详解_MySQL 中事务、事务隔离级别详解

    一.事务的概念 1.事务的概念 2.在mysql中哪些存储引擎(表类型)支持事务哪些不支持 3.事务的四个属性 4.mysql事务的创建与存在周期 5.mysql行为 6.事务的隔离性和性能 7.my ...

  2. mysql隔离级别加锁情况_MySQL数据库事务各隔离级别加锁情况--read committed amp;amp; MVCC...

    上节回顾 上篇记录了我对MySQL 事务 隔离级别read uncommitted的理解. 这篇记录我对 MySQL 事务隔离级别 read committed & MVCC 的理解. 前言 ...

  3. mysql当前时间减一分钟_MySQL数据库事务的机制【总结】

    php中文网最新课程 每日17点准时技术干货分享 这几天面试多次被问到了数据库事务机制.隔离级别.乐观锁悲观锁类的问题,之前对这些只能说有所了解,有些概念还停留在记忆层面,没有理解,所以回答的不好.后 ...

  4. mysql不自动提交更改语句_MySQL设置事务自动提交(开启和关闭)

    MySQL 默认开启事务自动提交模式,即除非显式的开启事务(BEGIN 或 START TRANSACTION),否则每条 SOL 语句都会被当做一个单独的事务自动执行.但有些情况下,我们需要关闭事务 ...

  5. mysql数据存储过程详解_mysql数据存储过程参数实例详解

    MySQL 存储过程参数有三种类型:in.out.inout.它们各有什么作用和特点呢? 一.MySQL 存储过程参数(in) MySQL 存储过程 "in" 参数:跟 C 语言的 ...

  6. mysql数据库的安装和配置文件_MySQL 数据库安装与配置详解

    目录 一.概述 MySQL 版本:5.7.17 客户端工具:NavicatforMySQL ** 二.MySQL 安装** 安装条件: 如果 Windows Server 2003 在安装.net f ...

  7. 不属于mysql二进制日志相关的参数_MySQL二进制日志相关问题详解

    本文出处: (保留出处并非什么原创作品权利,本人拙作还远远达不到,仅仅是为了链接到原文,因为后续对可能存在的一些错误进行修正或补充,无他) 今天无意中发现了一个云栖社区举行的MySQL"第一 ...

  8. mysql数据库函数详解_MySQL数据库之字符函数详解

    MySQL数据库中的函数根据功能可以划分为字符函数.数值运算符与函数.比较运算符与函数.日期时间函数.信息函数.聚合函数.加密函数以及自定义函数等. 1.CONCAT() CONCAT()函数用于字符 ...

  9. mysql中select是什么意思_MYSQL中select的是详解

    数据表都已经创建起来了,假设我们已经插入了许多的数据,我们就可以用自己喜欢的方式对数据表里面的信息进行检索和显示了,比如说:可以象下面这样把整个数据表内的内容都显示出来 select * from p ...

最新文章

  1. 你见过最狠的SCI评论是什么?
  2. 别怕,BCH无惧攻击
  3. 关于ubuntu对有线网卡I219-V和无线网卡RTL8723DE 802.11b/g/n的支持问题
  4. colorkey唇釉是否安全_Colorkey 空气唇釉真的那么好用吗?
  5. Java数据结构与算法-环形队列
  6. msp430项目编程46
  7. web控制串口.html,[转]web串口调试助手,浏览器控制串口设备
  8. bzoj 1672: [Usaco2005 Dec]Cleaning Shifts 清理牛棚(DP)
  9. web前端开发技术实验与实践(第三版)储久良编著 课外拓展训练5.2 HTML5是如何起步的
  10. IOCCC.1984.anonymous.c.解析
  11. 词法分析(三):有限自动机DFA与NFA
  12. Java 面向对象 习题2(基础篇)
  13. 【python】win32模拟键盘实现游戏内操作
  14. 算法设计 (分治法应用实验报告)基于分治法的合并排序、快速排序、最近对问题
  15. Web地图服务规范(WMS、WMTS、TMS)简析
  16. 讲情怀的韦晓亮和他的科技教育因果论
  17. 上拉(Pull Up )或下拉(Pull Down)电阻详解
  18. Ubuntu下mount cifs
  19. python预测未来数据步骤_大神教你用Python预测未来:一文看懂时间序列(值得收藏)...
  20. Redis(十)——HyperLogLog 基数统计和 Bitmap位图场景详解

热门文章

  1. 牛顿迭代法例题 matlab,牛顿迭代法-matlab程序(解线性方程组)
  2. IOS 下使用AdMob广告
  3. sql server 验证身份证号码有效性
  4. 图文解说 linux 安装 nginx
  5. 服务器生成js文件,Next.js 静态生成和服务器端渲染
  6. Zookeeper小解
  7. 风水学上八种住宅要避忌
  8. vue 使用quill-editor富文本编辑框
  9. 操作系统—物理内存与虚拟内存
  10. 浅谈 SAP ABAP 系统里的 ALV 输出方式实现