mysql加锁读

Posted 狂乱的贵公子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql加锁读相关的知识,希望对你有一定的参考价值。

Locking Reads

在同一个事务中,如果你先查询数据,随后对相关数据进行插入或修改,那么在标准的SLELECT中不会给出足够的保护。在你查询期间另一个事务可以更新或者删除相同的行。InnoDB提供两种类型的加锁读:

  • SELECT ... LOCK IN SHARE MODE

    给读到的每一行都加共享锁。其它的会话也可以读到这些行,但是它们不能修改这些行,直到你的事务提交。如果这些行被其它事务修改了但尚未提交,你的              查询必须等待直到那个事务结束。

  • SELECT ... FOR UPDATE

    对于检索到的没一个索引记录,锁定这些行和与之关联的索引记录

 

其实,前者是加意向共享锁,后者加意向排它锁。

 

以上是关于mysql加锁读的主要内容,如果未能解决你的问题,请参考以下文章

MySQL并发控制

Mysql锁机制和事务隔离级别

并发相关随笔(持续更新)

Mysql加锁过程详解-基本知识

Mysql加锁过程详解-innodb下的记录锁,间隙锁,next-key锁

Mysql加锁过程详解-innodb下的记录锁,间隙锁,next-key锁