数据库进阶教学——事务隔离级别和锁的关系

编程入门 行业动态 更新时间:2024-10-25 08:23:54

数据库<a href=https://www.elefans.com/category/jswz/34/1769503.html style=进阶教学——事务隔离级别和锁的关系"/>

数据库进阶教学——事务隔离级别和锁的关系

一、锁的概述

1、简介

  • 锁是计算机协调多个进程或线程并发访问某一资源的机制。
  • 在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2、分类

  • 根据锁的粒度,分为:
    • 全局锁:锁定数据库中的所有表。
    • 表级锁:每次操作锁住整张表。
    • 行级锁:每次操作锁住对应的行数据。
  • 根据锁的兼容性,分为:
    • 共享锁(读锁)
      • 允许多个事务同时对数据加读锁,实现并发读。
      • 加了读锁之后,会阻塞其他事务对该数据加写锁,但不会阻塞加读锁的请求。
    • 排他锁(写锁)
      • 只允许加写锁的事务访问数据,其他事务都会被阻塞。
      • 加写锁之后,不允许任何其他事务再对数据加任何锁,实现互斥写。

二、事务隔离级别和锁的关系

  • 读未提交(Read Uncommitted)
    • 没有加任何锁,存在脏读、不可重复读和幻读问题。
  • 读提交(Read Committed)
    • 对读取的数据加共享锁,可以避免脏读,但不可重复读和幻读仍可能存在。
  • 可重复读(Repeatable Read)
    • 对读取的数据加共享锁,对用到的查询条件加共享锁,可以避免脏读和不可重复读,但幻读仍可能存在。
  • 串行化(Serializable)
    • 对读取的数据和查询条件都加排他锁,可以防止脏读、不可重复读和幻读,但并发性最低。
  • 具体了解事务隔离级别:数据库进阶教学——事务-CSDN博客

更多推荐

数据库进阶教学——事务隔离级别和锁的关系

本文发布于:2023-11-17 02:37:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1637077.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:进阶   级别   事务   关系   数据库

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!