文档章节

MySQL中select for update的问题

似是而非Sage
 似是而非Sage
发布于 2016/04/30 18:48
字数 332
阅读 525
收藏 3

由于InnoDB引擎预设的是Row-Level Lock,所以只有明确的主键,MySQL才会执行行锁.否则MySQL将会执行表锁.

 

实验如下:

1.当我们使用主键作为查询查询条件,并使用for update加锁的时候,我们只是对这条记录加锁:

终端1: id=1的记录已经被加锁,在事务提交之前,终端2无法读取到这条记录.

终端2:现在无法读取id=2的记录,但是可以读取主键为其他值的记录. 

终端1的事务提交(commit)之后,终端2的事务才可以查询到id=1的记录 

2.当我们不使用主键作为查询条件并for update,会触发表锁.

终端1:使用非主键作为关键字作为检索条件终端2:在事务提交之前,终端2无法以各种条件查询,因为终端1事务已经触发了表锁. 

终端2:在事务提交之前,终端2无法以各种条件查询,因为终端1事务已经触发了表锁.

© 著作权归作者所有

似是而非Sage
粉丝 4
博文 11
码字总数 10369
作品 0
嘉定
后端工程师
私信 提问
MySQL SELECT同时UPDATE同一张表

MySQL不允许SELECT FROM后面指向用作UPDATE的表,有时候让人纠结。当然,有比创建无休止的临时表更好的办法。本文解释如何UPDATE一张表,同时在查询子句中使用SELECT. 问题描述 假设我要UPD...

lg2045
2014/08/28
0
0
mysql相关的注意点

mysql相关的注意点 无标题2017-02-1740 阅读 数据库mysql 最近一直忙于业务系统的开发,在开发过程中少不了sql语句的使用,我们在分页遍历的时候经常需要排序,就会编写如下的sql 这个分页s...

无标题
2017/02/17
0
0
You can't specify target table for update....

这篇文章主要介绍了mysql中You can’t specify target table for update in FROM clause错误解决方法,需要的朋友可以参考下 mysql中You can't specify target table for update in FROM cla......

沧海一刀
2018/06/26
0
0
mysql中select for update锁的问题

mysql中select for update锁的问题 无标题2017-12-053 阅读 mysql 在日常关于资金业务的开发过程中,涉及到数据库的操作时我们经常按照一查二锁三写的套路,可能在加锁后还需要查询一些数据,...

无标题
2017/12/05
0
0
mysql 在一条语句中update和select同一张表

MySQL不允许SELECT FROM后面指向用作UPDATE的表,有时候让人纠结。本文解释如何UPDATE一张表,同时在查询子句中使用SELECT.问题描述假设我要UPDATE的表跟查询子句是同一张表,这样做有许多种...

张欢19933
2016/07/26
63
0

没有更多内容

加载失败,请刷新页面

加载更多

Odoo 自定义Widgets 基础教程(章节2)

大家好, 本文将进一步解释odoo widget 的相关原理,其中首先会讲述:1. 什么是widgets 中的继承;2. 为什么有很多 init : function 语法;3. widgets 系统结构; 首先,让我们来看看结构:(...

openerp
15分钟前
0
0
我的Linux常用软件

我的Linux常用软件 本帖记录我在Linux下常用的软件,系统是Deepin Linux, 以备查询用, 不定期更新。 Sougou Pinyin 这个不用多说, 装系统第一个要找输入法。 TeamViewer Linux有时候需要远...

Frank1126lin
22分钟前
0
0
TypeScript + eslint 格式化代码及其它

缘起 之前使用 tslint 校验代码格式,后来发现 ts 官方已经放弃这个转而使用 eslint,研究了一下把相应配置调整了一下。 目标: 使用 eslint、prettier 格式化 TypeScript 代码 使用 husky、...

郁也风
23分钟前
0
0
虎牙在全球 DNS 秒级生效上的实践

本文整理自虎牙中间件团队在 Nacos Meetup 的现场分享,阿里巴巴中间件受权发布。 这次分享的是全球 DNS 秒级生效在虎牙的实践,以及由此产生的一些思考,整体上,分为以下5各部分: 背景介绍...

阿里云云栖社区
41分钟前
1
0
centos7上记录sftp操作

ftp客户端中使用sftp协议如何记录操作日志? 经过实践,secure-crt上链接sftp session的操作不会被记录下来,命令行应该很少会用,毕竟门槛在呢。 而其他ftp客户端则会被记录下来,包括进入目...

gaolongquan
43分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部