MySQL 默认的事务隔离级别?什么是事务?事务的特性?

MySQL 默认的事务隔离级别?什么是事务?事务的特性?

  • 读已提交(MySQL 默认隔离级别)

1.什么是事务

  • 将一组业务操作中的多条sql语句当成一个整体,那么这多条sql语句要么全部执行成功,要么全部执行失败。如果有一条sql语句执行失败,则回滚已经执行成功的sql语句。

2.事务的特性

  • 原子性(atomicity):表示事务是一个不可再分割的工作单元,事务中的操作要么全部执行成功,要么全部执行失败。列如:张三转账给李四,出现异常,张三扣款失败,李四收款失败。
  • 一致性(consistency):表示事务开始之前和事务结束之后,数据库的完整性约束没有被破坏。列如张三转账给李四 1000元(张三现在有 3000元,李四现在有 2000元),不管这次的转账成功或者失败,两个人钱的总和都应该是 5000元。
  • 隔离性(isolation):表示多个事务并发访问时,事务之间是隔离的互不干扰的,一个事务不应该影响其它事务运行效果。
  • 持久性(durability):一个事务一旦提交成功,它对数据库中的数据的操作是永久的。

3.事务隔离级别

  • 第一等级:(读未提交):会产生脏读,不可重复读,幻读的可能。
  • 第二等级:(读已提交):不会产生脏读,但是会发生不可重复读,幻读的可能。(MySQL默认隔离级别)
  • 第三等级:(可重复读):不会发生脏读和不可重复读,但是会发生幻读的可能。(Oracle默认隔离级别)
  • 第四等级:(串行化):不会发生以上的三种问题。
  • 第一等级安全系数最低,第四等级安全系数最高。

4.什么是脏读?什么是不可重复读?什么是幻读?什么是可重复读?

  • 脏读:当前事务读取到了其它事务未提交的数据。
  • 不可重复读:在一个事务中,查询结果是这个,当其它事务提交的时候,再查询发现结果变了,这种现象就是不可重复读。
  • 幻读:事务A第一次查询得到一行记录a,事务B提交修改后记录b,事务A第二次查询得到两行记录,记录a和记录b。
  • 可重复读:在一个事务中,别的事务提交了,查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读。当本次事务提交了,再查询结果就会改变。

在这里插入图片描述

END…

猜你喜欢

转载自blog.csdn.net/Jack_Huang_888/article/details/105981532