事务级别有哪些?

  1. Read Uncommitted(读未提交):
    • 这是最低的事务隔离级别。
    • 一个事务可以读取另一个尚未提交的事务的修改。
    • 可能出现的问题包括脏读、不可重复读和幻读。
    • 由于它允许读取未提交的数据,所以性能上可能稍好一些,但数据一致性风险也最高。
  2. Read Committed(读已提交):
    • 大多数数据库系统的默认隔离级别(但不是MySQL的默认级别)。
    • 一个事务只能读取已经提交的事务的修改。
    • 避免了脏读,但可能出现不可重复读和幻读。
    • 在这个级别下,一个事务内对同一数据的多次读取可能返回不同的结果,因为其他事务可能在此期间修改了数据并提交。
  3. Repeatable Read(可重复读):
    • 这是MySQL,MongoDB的默认隔离级别。
    • 在同一事务内的多次读取会看到相同的数据行,即使其他事务在此期间修改了这些行并提交。
    • 避免了脏读和不可重复读,但可能出现幻读(即一个事务读取了几行数据,另一个并发事务插入新行,然后第一个事务再次读取同样的范围时,看到了这些新行)。
    • 通常,这个级别通过多版本并发控制(MVCC)来实现。
  4. Serializable(串行化):
    • 这是最高的隔离级别。
    • 它通过强制事务串行执行,而不是并发执行,来避免脏读、不可重复读和幻读。
    • 由于事务是串行执行的,因此性能通常最差。
    • 在这个级别下,读操作会加共享锁,写操作会加排它锁,因此其他事务不能修改被读取的数据。
posted @   Esther_Cheung  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
点击右上角即可分享
微信分享提示