首页 > 数据库 >老杜MySQL/days.05(事务)

老杜MySQL/days.05(事务)

时间:2022-09-25 18:34:32浏览次数:57  
标签:语句 事务 事务性 DML 提交 MySQL 数据 老杜 days.05

1. 事务(一个完整的业务逻辑,最小的工作单元)

  a. 事务中的语句要么全部成功,要么全部失败;

  b. 只有DML语句才有事务的说法,即 insert、delete、update;

  c. 事务怎么做到多条DML语句同时成功、失败的:

    InnoDB存储引擎:提供一组用来记录事务性活动的日志文件,事务执行过程中,每一条DML的操作都会记录到“事务性活动的日志文件”中;

  d. 提交事务:清空事务性活动的日志文件,将数据全都彻底持久化到数据库表中;标志事务的成功结束;

  e. 回滚事务:撤销之前DML的操作,并清空事务性活动的日志文件,标志事务的失败;(只能回滚到上一次的提交点)

  d. 默认开始自动提交事务(每条DML语句执行都会提交一次),可以使用 start  transaction;语句将自动提交事务的语句关闭;

2. 事务的4个特性:

  原子性:事务时最小的工作单元,不可再分;

  一致性:在一个事务中,要么同时成功,要么同时失败,保证事务的一致性;

  隔离性:事务A和事务B之间分隔开,否则并发操作时会破坏数据安全;

  持久性:事务提交,相当于把没有保存到硬盘的数据存储到硬盘上;

3. 事务的隔离性

  读未提交:read  uncommitted(最低隔离级别)

    事务A可以读到事务B未提交的数据,会读到脏数据,一般不用;

    

  读已提交:read  committed(oracle默认的级别)

    事务A只可以读到事务B已提交的数据,解决脏读现象;但是存在不可重复读取数据的问题;

    

  可重复读:repeatable  read(读取的都是刚开启事务时的数据,事务不结束,读到的永远都是开始的数据)(sql默认级别)

    事务A开启后,不管过多久,每一次在事务A中读取到的数据都是一致的。即使事务B修改并提交了,事务A读到的数据还是一致的;

    可能会出现幻影,每次读到的数据不够真实;

    

  序列化 / 串行化:serializable(最高隔离级别)

    效率最低,解决所有问题,事务排队不能并发;

    

 

 

    

  

标签:语句,事务,事务性,DML,提交,MySQL,数据,老杜,days.05
From: https://www.cnblogs.com/LinxhzZ/p/16728433.html

相关文章

  • mysql分组后选出最大值所在的那一行数据
    背景mysql中使用groupby进行分组后取某一列的最大值,我们可以直接使用MAX()函数来实现,但是如果我们要取最大值所在的那一行或多行(可能有多行对应的最大值都一样)那么我们需......
  • MySQL数据库安装保姆级教程及1045错误和2058问题解决
    使用Mysql的zip压缩包解压版,下载之后需进行一定的配置,才能使用它。下面对Mysql压缩包版的安装方法进行详细的描述,如有疑问或错误,望及时反馈。首先,mysql的官方下载地址......
  • 【博学谷学习记录】超强总结,用心分享|Java基础分享-MySQL 有哪些锁
    目录1.全局锁2.表级锁2.1表锁2.2元数据锁2.3意向锁2.4AUTO-INC锁3.行级锁 1.全局锁全局锁是怎么用的?要使用全局锁,则要执行这条命:flushtableswithread......
  • 老杜MySQL/days.04(约束)
    1.快速创建表(不常用):create table 表名 as select * from 表名;或 create table 表名 as select 字段1,字段2,...from 表名 where 筛选条件;......
  • mysql进阶
    1表的设计     一对一比如一个学生有一个账户,一个账户也只能被一个学生注册一对多可以创建两个表,一个学生表一个班级表  多对多  1号学生选......
  • 老杜MySQL/days.03
    1.数据类型(varchar,char,int,bigint,float,double,date,datetime,clob,blob)varchar:可变长度字符串;存储数据的时候判断字符长度进行空间分配,速度慢;char:固定长度,速度快,容易......
  • 老杜MySQL/days.02
    1.distinct只能出现在所有字段的前方,但是可以结合分组函数使用;2.笛卡尔积:两张表的连接查询不加限制,就会出现;(最终数据条数=两表记录条数的乘积)注:加了限制后,匹配......
  • MySql
    关系型数据库:二维表,都是表结构易于查询,数据存在磁盘中安全,使用通用的SQL语言方便注释--这里有一个空格 或者#DDL:操作数据库,表   数据库操作:showdatabas......
  • 计算机毕业设计 SpringBoot+Vue招投标系统 招标系统 投标系统 招标采购系统Java Vue M
    ......
  • nacos 配置 mysql 本地数据源
    1、登陆https://hub.docker.com/拉取nacos镜像2、运行docker启动命令dockerrun-d\--namenacos-server\-eMODE=standalone-eprefer_host_mode={名称}\-p884......