在同一个事务中,如果你先查询数据,随后对相关数据进行插入或修改,那么在标准的SLELECT中不会给出足够的保护。在你查询期间另一个事务可以更新或者删除相同的行。InnoDB提供两种类型的加锁读:
SELECT ... LOCK IN SHARE MODE给读到的每一行都加共享锁。其它的会话也可以读到这些行,但是它们不能修改这些行,直到你的事务提交。如果这些行被其它事务修改了但尚未提交,你的 查询必须等待直到那个事务结束。
SELECT ... FOR UPDATE对于检索到的没一个索引记录,锁定这些行和与之关联的索引记录
其实,前者是加意向共享锁,后者加意向排它锁。
总结
以上是内存溢出为你收集整理的mysql加锁读全部内容,希望文章能够帮你解决mysql加锁读所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)