- Read Uncommitted(读未提交):
- 这是最低的事务隔离级别。
- 一个事务可以读取另一个尚未提交的事务的修改。
- 可能出现的问题包括脏读、不可重复读和幻读。
- 由于它允许读取未提交的数据,所以性能上可能稍好一些,但数据一致性风险也最高。
- Read Committed(读已提交):
- 大多数数据库系统的默认隔离级别(但不是MySQL的默认级别)。
- 一个事务只能读取已经提交的事务的修改。
- 避免了脏读,但可能出现不可重复读和幻读。
- 在这个级别下,一个事务内对同一数据的多次读取可能返回不同的结果,因为其他事务可能在此期间修改了数据并提交。
- Repeatable Read(可重复读):
- 这是MySQL,MongoDB的默认隔离级别。
- 在同一事务内的多次读取会看到相同的数据行,即使其他事务在此期间修改了这些行并提交。
- 避免了脏读和不可重复读,但可能出现幻读(即一个事务读取了几行数据,另一个并发事务插入新行,然后第一个事务再次读取同样的范围时,看到了这些新行)。
- 通常,这个级别通过多版本并发控制(MVCC)来实现。
- Serializable(串行化):
- 这是最高的隔离级别。
- 它通过强制事务串行执行,而不是并发执行,来避免脏读、不可重复读和幻读。
- 由于事务是串行执行的,因此性能通常最差。
- 在这个级别下,读操作会加共享锁,写操作会加排它锁,因此其他事务不能修改被读取的数据。
posted @
2024-03-26 16:02
Esther_Cheung
阅读(
38)
评论()
编辑
收藏
举报
点击右上角即可分享
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业