MySQL--事务

来源:互联网 发布:hp3055扫描仪驱动软件 编辑:程序博客网 时间:2024/06/06 01:13

事务的介绍

事务是指逻辑上的一组操作,是一个套sql语句的集合,成功或者失败必须一致

事务的特点

1. mysql默认是属于自动提交事务,每条语句都在单独的事务中2. 事务共计分三步    -- begin 或者 start transaction    -- Commit 提交    --如果发送错误执行roolback,

事务的示例代码

这里写图片描述

事务的特性

原子性: 一套sql语句是完整的操作不可以分割,成功或者失败必须相同一致性: 类似想物理当中的能力守恒定律一样,A给B赚钱 但是总的金额不变隔离性 :多个事务去操作数据的时候,事务直接必须是处于隔离状态,即代表线程属于独立的状态持久性 : 事务一旦操作数据成功不可以更改

事务的隔离级别

(1)脏读 : A事务读取B事务没有提交的数据(2)不可重复读 : 比如A事务从数据库中读取数据‘a’,此时B事务update修改了a数据,造成A事务读取的数据不准确。(3)虚度 : 同不可重复读数据类似,当A事务读取整个表中的数据,B事务insert into 某条数据造成B事务读取不准确不可以重复读取数据 ,同虚度数据区别在于对于表的操作 update insert区别

针对以上三种情况具体的解决方案就是提高安全级别

  1. read uncommitted 以三中情况都可能回方式
  2. read committed  避免 脏读, 不可以重复,虚度 可能会发生
  3. repeatable read   避免 脏读 不可重复 ,虚度可能会发生
  4. serializable   三种都不会发生

    注意效率 跟安全性 永远都是成反比的

MYSQL中的查看事务的指令

查看当前的事务的隔离级别 select @@TX_ISOLATION
更改当前事务的隔离级别  set transaction isolation level
设置隔离级别:必须在开启事务之前。
set transaction isolation level read uncommitted 设置事务级别

Connection 接口对应API

这里写图片描述

原创粉丝点击