大厂面试官问我:MySQL宕机重启了,怎么知道哪些事务是需要回滚的哪些是需要提交的?【后端八股文九:Mysql事务八股文合集】

本文为【Mysql事务八股文合集】初版,后续还会进行优化更新,欢迎大家关注交流~

 hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹

💥个人主页绝命Coding-优快云博客
💥 所属专栏后端技术分享
这里将会不定期更新有关后端、前端的内容,希望大家多多点赞关注收藏💖

大家第一眼看到这个标题,不知道心中是否有答案了?在面试当中,面试官经常对项目亮点进行深挖,来考察你对这个项目亮点的理解以及思考!这个时候,你如果可以回答出面试官的问题,甚至是主动说出自己的思考,那在面试中是大大加分的~

什么是事务?

事务是逻辑的一组操作,要么都执行,要么都不执行

# 开启一个事务
START TRANSACTION;
# 多条 SQL 语句
SQL1,SQL2...
## 提交事务
COMMIT;

请你描述下事务的特性?

(ACID)
(一原吃哥)
原子性A   最小的执行单位,不允许分割      要么全部完成,要么完全不起作用
一致性C 前后,数据库从一个一致性状态转换到另一个一致性
隔离性I   并发    不被其他事务所干扰   事务独立
持久性D  提交后   改变是持久

怎么实现

原子性(redo 和 undo 日志)
在执行事务期间,将修改的数据写入 redo 日志,并在事务提交前将其持久化到磁盘,确保事务的持久性。如果事务发生故障或回滚操作,可以使用 undo 日志来撤销事务的修改,使数据回滚到事务开始之前的状态。
隔离性(锁机制和多版本并发控制)
持久性(redo 日志)

innodb的默认隔离级别以及使用的技术

默认隔离级别是可重复读RR,但是用到了MVCC的快照读当前读技术以及next-key锁,所以可以解决幻读问题。对标SQL标准的可串行化。

对事务隔离级别的理解

(未提交读,提交读,可重复读,串行化)
READ_UNCOMMITTED(未提交读)
最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可以重复读

解决了更新丢失,但还是可能会出现脏读

READ_COMMITTED(提交读)
允许

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值