MySQL事务

Posted 技术很low的瓜贼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL事务相关的知识,希望对你有一定的参考价值。

文章目录

mysql事务

一、事务的两种操作

1.手动提交事务

语句功能
start transaction; 或者 BEGIN;开启事务
commit;提交事务
rollback;回滚事务
  • 手动提交事务流程

2.自动提交事务

  • MySQL 默认每一条 DML(增删改)语句都是一个单独的事务,每条语句都会自动开启一个事务,语句执行完毕 自动提交事务,MySQL 默认开始自动提交事务
  • MySQL默认是自动提交事务
SHOW VARIABLES LIKE ‘autocommit’;查看autocommit状态
SET @@autocommit=off;将默认的自动提交事务改为手动提交事务

二、事务四大特性

特性含义
原子性每个事务都是一个整体,不可再拆分,事务中所有的 SQL 语句要么都执行成功, 要么都失败。
一致性事务在执行前数据库的状态与执行后数据库的状态保持一致。
隔离性事务与事务之间不应该相互影响,执行时保持隔离的状态.
持久性一旦事务执行成功,对数据库的修改是持久的。就算关机,数据也是要保存下来的.

三、事务隔离级别

  • 并发访问会导致的问题
问题说明
脏读一个事务读取到了另一个事务中尚未提交的数据
不可重复读一个事务中两次读取的数据内容不一致, 要求的是在一个事务中多次读取时数据是一致的.
幻读一个事务中,某一次的 select 操作得到的结果所表征的数据状态, 无法支撑后续的业务操作. 查询得到的数据状态不准确,导致幻读.
  • 四种隔离级别(隔离级别越高,效率越低
  • 查看隔离级别:select @@tx_isolation;
  • 设置事务隔离级别,需要退出 MySQL 再重新登录才能看到隔离级别的变化
set global transaction isolation level 级别名称; 
read uncommitted 读未提交 
read committed 读已提交 
repeatable read 可重复读 
serializable 串行化

以上是关于MySQL事务的主要内容,如果未能解决你的问题,请参考以下文章

MySQL事务

mysql事务——控制语句使用

mysql 事务

MySQL-事务机制

MySQL事务实现原理

MySQL 中的事务控制机制