type
status
category
date
slug
summary
tags
password
icon

📝 主旨内容

事务特性?

ACID
原子性,一致性,隔离性还有持久性

事务隔离级别?

RU RC RR S
读未提交,读已提交,可重复读,串行化
 
mysql默认隔离级别是RR,Oracle是RC

不同隔离级别都会引起哪些问题?

脏读
不可重复读
幻读
可以解决以上三种问题,但是开销太大,在实际项目中不常用

💡
脏读:没有提交的数据被其他事务读到,解决方案:隔离级别,读已提交 不可重复读:多次读取结果,数据不一致,解决方案:隔离级别,可重复读 幻读:多次读取,数据量不一样(主要是 由插入操作引起的),解决方案:直接不让他插入 select for update 不让你插入 next-key-lock间隙锁
 

mysql是怎么解决不可重复读的(MVCC)

MVCC(多版本并发控制),多版本(一行数据的版本链)并发(场景)控制(读取的结果
💡
版本链:undolog和mysql针对每行数据的隐藏字段trx_id(事务id)和指向上一个版本的指针
notion image
💡
不可重复读和幻读的解决思路: 不可重复读:第一次查询的时候生成read view ,允许其他事务修改,你可以改但是改完我不读,根据read view 指示到底应该读什么数据 幻读:根本上解决你,不允许你插入数据,没有插入新数据就不存在幻读问题,简单粗暴
 
消息幂等linux shell常见命令
Guxi8086
Guxi8086
一个普通的干饭人🍚
公告
type
status
category
date
slug
summary
tags
password
icon
notion image
🎉NotionNext 🎉
👏欢迎更新体验👏