事务的隔离级别
事务的隔离级别4种
- Read Uncommited 读未提交,一个事务可以读取另外一个未提交的事务 -------高并发会导致脏读
- Read Commited 读操作,一个事务必须要等待另一个事务提交后才能读取 ----解决脏读问题,但并发会导致不可重复读
- Repeatable Read 重复读,开始读取数据(事务开启)时,不再允许修改操作;解决不可重复读问题;并发操作会导致幻读(执行更新操作)
- Serializable,序列化,最高的事务隔离级别,该级别下,事务串行化顺序执行;避免脏读、不可重复读与幻读;但是该级别效率低下,比较消耗数据库性能,一般不用
Read Commited 读操作 大多数数据库采用的隔离级别,如Oracle、sqlServer
Repeatable Read 重复读 Mysql的默认隔离级别
并发
数据库的锁
- 根据锁对象不同分为: 行级锁和表级锁
- 按并发事务锁定关系分为: 共享锁和独占锁
- 数据库提供自动锁机制,配置事务的隔离级别,根据级别自动加上合适的锁
==========================================================================================
- 脏读:一个事务读取另一个未提交的数据
- 不可重复读:一个事务范围内两个相同的查询却返回了不同数据
- 一个事务范围内两个相同的查询却返回了不同数据。对应的是插入操作
- 第1类丢失更新:两个事务均进行更新操作,相互影响,某一事务撤销影响最终结果的准确性
- 第2类丢失更新:事务A覆盖事务B已经提交的数据,造成事务B所做的操作丢失。为了避免此问题,可以使用Repeatable Read隔离级别,或者查询和更新操作用where、set price=price+10等类型语句
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)