mysql基础之事务

简介
事务是数据库的逻辑工作单位,具有原子性、一致性、隔离性、持久性四大特性。
【原子性】:事务中的操作要么全部成功,要么操作失败全部回滚,不会出行部分完成的状态。
【一致性】:事务开始到结束时,数据库都必须保持数据的一致状态(数据的完整性约束和业务逻辑不会被破坏)
【隔离性】:并发执行事务时,事务不受其它事务的影响。
【持久性】:事务被提交成功之后,对数据库的修改是永久性的,即使系统故障,修改也不会丢失。
事务的隔离级别
【读未提交(read uncommitted)】:事务最低级的隔离级别,允许读取尚未提交的数据,可能会导致脏读、幻读、不可重复读
【读已提交(read committed)】:允许读取已提交的数据,不会出现脏读。但是幻读、不可重复读依然可能发生。
【可重复读(repeatable read)】:该级别下,同一字段的多次读取结果是一致的。除非数据被本身事务所修改,可以防止脏读和不可重复读,但是仍会出现幻读。
【串行化(serializable)】:事务的最高隔离级别,避免脏读、不可重复读、幻读。但是对性能有影响

脏读、可重复读、不可重复读、幻读
【脏读】:一个事务读取了另一个事务未提交的数据。如果另一个事务回滚,对应的数据就不存在或者未更新,此时读取的数据就是不正确的。
【可重复读】:事务多次读取同一数据,每次读取的结果始终一致。
【不可重复读】:事务多次读取同一数据,由于其它事务对该数据进行了修改,导致多次读取的结果不一致。(查询结果条数不变,但是内容不一致)
【幻读】:同一事务执行多次相同的查询,由于其它事务插入或者删除了满足当前事务查询条件的数据,导致后续的查询结果出现了之前结果中未出现的数据。(查询结果数量增加或者减少)

创建一个简单的事务
1.设置隔离级别:set transaction isolattion leavel 事务隔离级别;; 事务的默认隔离级别是repeatable(可重复读)
2.开启事务:start transaction ;
3.执行sql语句:insert\update\delete语句;
4.提交/取消事务:commit; or rollback;

保存点
保存点是一个时间节点标记,它的存在可以让数据回滚到该节点之前的状态。
– 开启事务START TRANSACTION;
– 执行一些操作INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2'); UPDATE table_name SET column3 = 'new_value' WHERE id = 1;
– 创建一个保存点SAVEPOINT SP1;
– 执行一些操作DELETE FROM table_name WHERE id = 2;
– 如果需要回滚到保存点SP1,可以使用以下语句ROLLBACK TO SAVEPOINT SP1;
– 提交事务COMMIT;

其它问题:
【幻读与不可重复读的区别】
幻读侧重于数据的新增、删除,不可重复读侧重于数据的修改。
【事务的应用场景】
主要应用于金融交易、订单处理、账户管理等需要确保数据完整性和一致性的场景
【何验证系统是否正确地管理了事务,特别是在并发环境下】
可以通过模拟正常事务处理、并发事务处理以及异常情况下的事务处理场景,使用数据库管理系统的并发控制管理器来对并发执行的事务进行基本读写操作的顺序控制,以确保在某个隔离级别下,并发执行事务的正确性。
【简要介绍一下MySQL中的多版本并发控制(MVCC)机制,以及它在事务处理中的作用】
MVCC的主要作用是在数据库中处理并发操作时,通过保存数据的历史版本来实现事务的隔离性,允许读写操作同时进行而不互相干扰。这样,读取数据时就不需要加锁,从而提高了数据库的并发性能和响应能力

                                                                                   学海无涯
  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值