美文网首页
mysql悲观锁

mysql悲观锁

作者: Hello_DH | 来源:发表于2017-10-09 09:55 被阅读0次

    悲观锁介绍(百科):
    悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。
    用法: select … for update;

    例如:select * from goods where id = 1 for update;

    排他锁的申请前提:没有线程对该结果集中的任何行数据使用排他锁或共享锁,否则申请会阻塞。

    for update仅适用于InnoDB,且必须在事务块(BEGIN/COMMIT)中才能生效。在进行事务操作时,通过“for update”语句,MySQL会对查询结果集中每行数据都添加排他锁,其他线程对该记录的更新与删除操作都会阻塞。排他锁包含行锁、表锁。
    ZT sql悲观锁总结和实践 数据库:Mysql中“select ... for update”排他锁分析

    相关文章

      网友评论

          本文标题:mysql悲观锁

          本文链接:https://www.haomeiwen.com/subject/phuuyxtx.html