mysql中什么是事务?

事务

  1. 原子性

一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。

  • 比如转账:
    A有100,B有30,A要转30给B,要么转账成功B有60,A70,要么转账失败A,B账户不变动.并不会A账户没了30,B账户还没收到,30不会飞走.
  1. 一致性
    保证事务前后的数据完整性保持一致

A和B加起来共有130,转账完成后他们加起来的金额也是130,并不会多或少

  1. 隔离性
    一个事务的执行不能被其他事务干扰.
  2. 持久性
    事务一旦提交则不可逆,它对数据库中数据的改变就是永久性的.

隔离所产生的一些问题:

  • 脏读:

指一个事务读取了另一个事务未提交的数据

  • 不可重复读:

指在一个事务内读取表中的某一行数据,多次读取结果不同

页面统计查询:

A 100
B 200
C 500

点击生成报表的时候,B有人转账进来300(事务已经提交)

A 100
B 500
C 500
  • 虚读(幻读):

一个事务读取到了别的事务插入的数据,导致前后读取不一致
(一般是行影响,多了一行)

A 100
B 500
C 500
A 100
B 500
C 500
D 500

本文地址:https://blog.csdn.net/qq_45404563/article/details/112580303

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐