一文搞懂MySQL中事务的基本概念

1、事务是什么

事务(Transaction)是将⼀组操作封装成⼀个执⾏单元(封装到⼀起),这⼀个执⾏单元要么⼀起执⾏成功,要么⼀起失败,不会出现执⾏“⼀半”的情况。
相当于转账过程中,不会出现当转账到一半时断电,钱数数据凭空消失的事情发生
事务执行的方式就是当转账到一半断点时,重新启动后,会发生回滚操做,即把转出的钱换还回去原来的账户,被转账账户钱数不变。
执行过程会被打包,要么一起成功要么一起失败

2、支持事务的数据库引擎有哪些

支持事务的引擎:InnoDB引擎
不支持事务的数据库引擎:myISAM引擎(性能相对会高,鱼和熊掌不可兼得)

3、我们为什么要使用事务

保证了我们数据的安全性
例:转账到一半时断点,就有可能出现钱被扣了但是钱并没有转入对方账户,这笔钱凭空消失了。
这样数据的安全性就得不到保障,事务就是来解决这样一个问题的。

4、事务如何使用

        4.1 .开启事务:
                                mysql8之前版本使用start   transaction
                                 mysql8以后版本使用:begin
         4.2提交事务:commit 
         4.3 回滚事务:rollback
    注意事项:
    事务在开启之后,必须以提交事务或者回滚事务来结束任务。

下面展示创建事务–>执行SQL语句–>提交事务

 start transaction;
Query OK, 0 rows affected (0.00 sec)

mysql> update account set money=money-500 where name='张三';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from account;
+----+------+---------+
| id | name | money   |
+----+------+---------+
|  1 | 张三 | 4000.00 |
|  2 | 李四 | 1000.00 |
+----+------+---------+
2 rows in set (0.00 sec)

mysql> commit;
Query OK, 0 rows affected (0.01 sec)

mysql> select * from account;
+----+------+---------+
| id | name | money   |
+----+------+---------+
|  1 | 张三 | 4000.00 |
|  2 | 李四 | 1000.00 |
+----+------+---------+
2 rows in set (0.00 sec)
--提交了事务

5、事务的四大特性

事务有4 ⼤特性(ACID),原⼦性、持久性、⼀致性和隔离性,具体概念如下:
① 原⼦性
⼀个事务中的所有操作,要么全部执⾏成功,要么全部执⾏失败。
原⼦性是事务最重要的特性,全部执⾏失败并不是不执⾏,⽽是通过逆操作 rollback(回滚)数据。
实现原理:回滚是逆 SQL 操作:⽐如 A 账户 -500 元的逆操作就是 A 账户 +500 元。

② 持久性
数据存储到磁盘中就是持久的,不会丢失的,不会因为电脑重启⽽丢失。
③ ⼀致性
⼀个事务在执⾏前后数据必须保持⼀种合法的状态,事务总是从⼀个⼀致状态到另⼀个⼀致状态。
④ 隔离性(重要)
多个事务并发访问时,事务之间是相互隔离的,⼀个事务不应该被其他事务⼲扰,多个并发事务之间要
相互隔离。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值