美文网首页
MySQL 事务及四个特性

MySQL 事务及四个特性

作者: 攻城狮托马斯 | 来源:发表于2020-05-25 14:47 被阅读0次

为什么需要事务?

用户对数据库的访问是多程序多线程的,为了维护数据的一致性,我们需要事务.(间隙锁会相关) 目前只有Innodb支持事务.


事务的四个特性

原子性(Atomic):一个事务是一个不可分割的最小单元,要么全部执行,要么全部不执行.(增加和减少必须保持一致,转500块钱,减500,增加500,两个指令全部执行)

一致性(Consistency):事务必须是从一个一致性的状态转移到另一个一致性的状态(转500,一方扣500,一方加500,两边数目一致)

隔离性(Isolation):在事务正确提交之前,不允许把该事务对数据的任何改变提供给其他事务;

持久性(Durability):事务提交后,其结果永久保存在数据库中。(就算系统崩溃也不会被改变)

面试中隔离性被问的比较多.


隔离性:四个隔离级别

未提交读(read uncommited): 如果roll back导致脏读

已提交读(read commited): 解决脏读,产生不可重复读和幻读问题

可重复读(repeatable-read): 默认的隔离级别, 前一个事务中已经commit(把800改成750), 但本事务仍然可以重复读,获得老的值800, 除非本事务commit, 不然一直都是800. 在MySQL中解决所有问题(包括幻读),由间隙锁实现.

可串行化(serializable): 一定能解决幻读问题,但会通过锁表来进行,当session A在读表时, session B插入或者更改任何一条记录都不会成功。

三个问题:

脏读: 事务A读取了事务B更新的数据,但事务B进行了回滚操作,那么A读到的就是脏数据.(隔离级别为read uncommited)

不可重复读: 事务A多次读取同一数据, 事务B在事务A多次读取中,对数据更新并提交,导致事务A读到的数据结果不一致.(行数并没有增加, read commited, 能解决脏读问题, 但会产生不可重复读问题)

幻读: 在同一事务下当A用户读取某一范围的数据行时,B事务在该范围内插入了新行,当A用户再读取该范围的数据行时,会发现有新的“幻影”行(即读取到了B事务插入的数据)。 即违背事务隔离性要求。

MySQL中RR也可以解决幻读

语法


开启事务://三个没有区别

Begin

START TRANSACTION(推荐)

behin work

事务回滚 rollback

事务提交 commit

还原点 savepoint  

相关文章

  • MySQL 事务及四个特性

    为什么需要事务? 用户对数据库的访问是多程序多线程的,为了维护数据的一致性,我们需要事务.(间隙锁会相关) 目前只...

  • Mysql事务

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

  • 一文了解InnoDB事务实现原理

    本文准备通俗的讲解MySQL的InnoDB存储引擎事务的实现原理。 首先,我们知道事务具有ACID四个特性。也即:...

  • MYSQL 事务特性

    Mysql事务包含ACID四个特性,A: 原子性, C:一致性, I:隔离性, D:持久性 原子性 定义:事务执行...

  • 淘宝MySQL文档整理

    MySQL · 引擎特性 · InnoDB 事务锁系统简介 MySQL · 引擎特性 · Innodb 锁子系统浅...

  • Mysql 事务

    Mysql 事务及 MVCC 详解 ACID 四大特性 原子性(atomicity)一个事务操作看做一个做小的执行...

  • 收集几十位大厂面试者的面试题及个人见解-MySQL模块

    1.1 MySQL事务特性是什么?怎样实现ACID特性? MySQL事务指:一组操作要么同时成功要同时失败。所以事...

  • MYSQL锁和事务机制

    mysql基础: mysql的四个特性,原子性、一致性、隔离性、持久性。1.原子性(atomicity):一个事务...

  • MySQL事务特性及隔离级别

    什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。 假如...

  • 数据库事务与并发控制

    一、事务 事务的四个特性(ACID特性) 原子性(Atomicity)事务是一个整体,不可拆分;要么都做,要么都不...

网友评论

      本文标题:MySQL 事务及四个特性

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