MySQL的行锁

本文详细介绍了MySQL的行锁,包括共享锁(S锁)和排他锁(X锁)。行锁在当前读时生效,如select...lock in share mode和DML操作。分析了在不同隔离级别和索引情况下,如无索引、唯一索引和普通索引的加锁行为,强调了使用索引的重要性以避免全表锁。
摘要由CSDN通过智能技术生成

行锁

MySQL的行锁又分为共享锁(S锁)排他锁(X锁)

排他锁(exclusive lock)又称为写锁或X锁,它禁止其他session对同一资源进行修改。当一个session在某个资源上持有排他锁时,其他session既不能读取也不能修改该资源。排他锁主要用于防止数据的脏读和丢失更新问题,确保在同一时间只有一个session可以对数据进行修改。排他锁通常用在以下场景:

  • 更新操作:当session需要对数据进行更新操作时,它会在数据上添加排他锁,以防止其他session在同一时间修改相同的数据,从而避免丢失更新问题。

  • 删除操作:当session需要删除数据时,它会在数据上添加排他锁,以防止其他session在同一时间修改或读取正在删除的数据。

  • 选择性更新:当session需要根据条件选择性地更新数据时,即使没有明确指定排他锁,MySQL也会自动添加排他锁,以确保在同一时间只有一个session可以执行更新操作。

    共享锁(sharedlock)又称为读锁或S锁,它允许多个session同时读取同一资源,但禁止其他session对该资源进行修改。共享锁主要用于防止数据的脏读问题,确保多个session可以在同一时间读取相同的数据,而无需担心数据被其他session修改。共享锁通常用在以下场景:

  • 查询操作:当session只需要读取数据而不进行任何修改时,它会在数据上添加共享锁,以防止其他

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵豸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值