mysql 隔离级别
1 事务就是一组数据库操作,要不全部都成功,要不全部都失败。
2 事务包含ACID (Atomicity Consistency Isolation Durability)。
3 数据库上有多个事务同时执行的时候,就有可能造成 脏读(dity Read)不可重复读(no-repeatable read)幻读(phantom read),因此就有了事务的隔离级别。
4 sql 的标准隔离级别有:
4.1 读未提交(read uncommit): 一个事务还没提交,它做出的改变就能被别的事务看到。
4.2 读提交(read commit): 一个事务提交后,它做出的变更才能被别 的事务看到。
4.3 可重复读(repeatable read): 一个事务在执行中看到的数据,总是和这个事务启动的时候,看到的数据是一致的。
当然在可重复读的隔离级别下,事务执行过程中数据的改变对其他事务时不可见的。
4.4 串行化(serializable): 对于同一行记录,写会加写锁,读会加读锁。别的事物要访问这条记录,只能等当前事务提交之后才能访问 这条记录。
mysql 展示 当前变量的事务 show variables like 'transaction_isolation';
5 事务的实现原理
mysql 在更新每条记录的时候,都会同时创建一条回滚操作(read-views)。记录上的最新值可以通过read-views回滚到之前的值。
6 你可以在 information_schema 库的 innodb_trx 这个表中查询长事务,比如下面这个语句,用于查找持续时间超过 60s 的事务。
select * from information_schema.innodb_trx where TIME_TO_SEC(timediff(now(),trx_started))>60
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)