美文网首页
MySQL事务小总结

MySQL事务小总结

作者: GG_lyf | 来源:发表于2020-05-29 17:39 被阅读0次

前言

  MySQL是我们学习或工作常用的数据库,前段时间我在一些面试课上看到有好多的面试官在问到数据库时总会提到事务.MySQL只有innodb引擎支持事务,现在介绍一下事务的相关知识.


开搞

1.事务

  1.事务是一个不可分割的执行单元
  2.事务作为一个整体,要么一起执行成功,要么一起回滚

2.事务特性(ACID)

  1.原子性(Atomicity):事物是一个整体,不可再分,要么一起执行,要么一起不执行
  2.一致性(Consistency):事务完成时,数据必需处于一致状态
  3.隔离性(Isolation):每一个事物都是相互隔离的(会把表锁住,只能在一个时段内操作一个表)
  4.永久性(Durability):事务完成后,対数据的修改是永久性的

3.事务操作

  1.开启事务:start transaction 或 begin [work] 不提交和回滚事务不真正执行,而是放到缓存区
  2.提交(结束)事务: commit 将缓存区中的事务统一执行
  3.回滚: rollback回到事务语句开始时的状态
  4.回滚点: savepoint 回滚点名字,回到回滚点语法:rollback to 回滚点名
  5.查询: show variables like "%commit%"
  6.关闭自动: set autocommit = 0,设置为1为自动

4.并发访问的问题

  1.脏读: 一个事务读取到了另一个事务未提交的数据
  2.丢失修改:一个事务读取数据,第二个事务也读取数据,第一个事务修改完,第二个事务也修改了,造成第一个事物修改丢失
  3.不可重复读: 一个事务中两次读取到的数据内容不一致,这是另一个事务对数据修改引发的问题
  4.幻读: 一个事务中两次读取到的数据条目数量不一致,这是另一个事务对数据库添加或删除造成的

注:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重于新增或删除。解决不可重复读的问题只需锁住满足条件的行,解决幻读需要锁表

5.对于并发访问出现的问题的解决方法就是设置隔离级别,那什么是隔离级别?

  隔离级别是用来限定事务内外的哪些改变可见,哪些不可见。低的隔离级别一般支持更高的并发处理,并拥有更低的系统开销

6.事务的隔离级别

  读未提交 read uncommitted 隔离级别最低,效率最高,对于三种问题都无法解决
  读已提交 read committed 避免脏读,是大多数数据库系统的默认隔离级别(但不是MySQL默认的)
  可重复读 repeatable read 避免脏读和不可重复读,是MySQL的默认事务隔离级别
  串行化 serializable 可避免一切并发访问问题,效率最低

7.设置隔离级别

  查询:show variables like "%isolation%"
  设置:set global transaction isolation level 级别

相关文章

  • MySQL事务小总结

    前言 MySQL是我们学习或工作常用的数据库,前段时间我在一些面试课上看到有好多的面试官在问到数据库时总会提到事务...

  • MYSQL事务 SELECT会自动加锁 及乐观锁

    1,mysql事务 select会自动加锁吗? 总结:mysql事务select 只是进行了隔离,保证数据的一致性...

  • MySQL系列-MySQL事务总结

    什么是事务 对于数据库而言,事务就是一组原子性的可执行的SQL语句,或者说是一个独立的工作单元。事务内语句,要么全...

  • SQL基础(三)

    事务 主要总结Mysql中操作事物的过程。 预编译 主要总结Mysql中操作预编译的过程。说出预编译的优点,画出S...

  • Mysql事务

    1) mysql事务的ACID特性 2)MySQL事务隔离级别

  • MySQL事务隔离级别

    [toc] 前言 这篇文章将会总结MySQL中的innodb的事务隔离级别,以及幻读、脏读、不可重复读。 事务隔离...

  • MySQL目录

    安装 安装MySQL8 卸载MySQL8 MySQL8限定IP访问 事务 MySQL的事务的隔离级别

  • (转载)通俗易懂 Mysql事物隔离(MVVC)

    MySQL 事务 本文所说的 MySQL 事务都是指在 InnoDB 引擎下,MyISAM 引擎是不支持事务的。 ...

  • MySQL-7事物与锁的关系

    大家好,我是安小生,继续数据库的总结:MySQL的事物,那么什么是事物呢? 事务是MySQL区别于NoSQL的重要...

  • MySQL(Mariadb)总结6 - 事务

    事务: 一种原子性的SQL查询,或者说是一个独立的工作单元. 事务日志文件: ACID测试: A: atomici...

网友评论

      本文标题:MySQL事务小总结

      本文链接:https://www.haomeiwen.com/subject/lklfzhtx.html