Code前端首页关于Code前端联系我们

mysql数据库事务是什么?其特点是什么?如果不这样做会有什么后果?

terry 2年前 (2023-09-26) 阅读数 44 #数据库

什么是数据库事务?如果没有东西的话会有什么后果呢?交易有什么特点?

事务是指作为单个逻辑工作单元执行的一系列操作,可以将其视为一系列 SQL 语句的单元。要么完全做,要么根本不做。

数据库如果不进行并行控制,可能会出现脏读、不重复读、幻读、修改丢失等异常情况。

事务的特性(ACID)

A,atomacity 原子性 事务必须是工作的原子单元;要么执行所有数据更改,要么不执行任何数据更改。与交易相关的操作通常有一个共同的目标并且是相互依赖的。如果系统只执行其中一些操作,则可能无法实现交易的总体目的。原子性消除了系统处理操作子集的可能性。

C,一致性 一致性

事务将数据库从一种一致状态转换为下一种一致状态。换句话说,当事务完成时,所有数据必须保持一致的状态(各种约束不被破坏)。

I,隔离 隔离 并发事务所做的更改必须与其他并发事务所做的所有更改分开。事务查看数据时数据的状态要么是被另一个并发事务修改的状态,要么是被另一个事务修改的状态。事务不会查看中间状态的数据。换句话说,在事务提交之前,该事务的影响对其他事务是不可见的。

D、持久性 持久性

交易关闭后,其对系统的影响是永久性的。即使发生致命的系统故障,这种修改仍然存在。

“A 向 B 发送 100 块钱”

读取 A 账户的余额(500)。
A账户的扣减操作(500-100)。
我们将结果写回账户 A (400)。
读取B账户余额(500)。
账户B执行加法运算(500+100)。
结果返回到账户 B (600)。
原子性:

确保1-6。执行或不执行的进程。如果出现问题,请返回。

灵犀

转账前,A、B账户内共有500+500=1000元。转账后,A账户和B账户总共有400+600=1000元,查询B账户时,两个账户没有变化。

维护

一旦转账成功(交易提交),两个账户里的钱就会真正发生变化

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门