社区
Web 开发
帖子详情
MYSQL select时锁定记录问题
土豆是我的最爱
2020-08-17 04:14:25
在使用SQL时,大都会遇到这样的问题,你Update一条记录时,需要通过Select来检索出其值或条件,然后在通过这个值来执行修改操作。
但当以上操作放到多线程中并发处理时会出现问题:某线程select了一条记录但还没来得及update时,另一个线程仍然可能会进来select到同一条记录。
请问应该符合解决
...全文
2252
3
打赏
收藏
MYSQL select时锁定记录问题
在使用SQL时,大都会遇到这样的问题,你Update一条记录时,需要通过Select来检索出其值或条件,然后在通过这个值来执行修改操作。 但当以上操作放到多线程中并发处理时会出现问题:某线程select了一条记录但还没来得及update时,另一个线程仍然可能会进来select到同一条记录。 请问应该符合解决
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kris2088
2020-08-18
打赏
举报
回复
每条记录加一个版本号,防止脏数据是个办法
亦夜
2020-08-17
打赏
举报
回复
其实没太明白你的意思,你想通过select出来的值来进行更新,但是你在更新操作还没成功的同时又进行了select操作,那么这有什么问题呢,写和读着两者并不冲突,如果你是希望第二个读 读取到的是前一个写操作后的最新值,那你完全可以在执行update的时候锁住当前表,但是如果你的并发较高,这不是可取的办法,或者你可以通过乐观锁给表增加版本号,写操作会导致版本增加,读操作可进行对比版本是否变化,来判断是否是最新数据,但是这有依旧无法第一时间获取到最新数据,可以通过让写操作返回值的方式来判断数据是否更新来进行查询
快叫我java小菜鸟
2020-08-17
打赏
举报
回复
配置数据库事务的隔离级别为SERIALIZABLE,同时为所有数据库操作开启事务
mysql
- insert
select
带来的锁
问题
当使用 insert...
select
...进行
记录
的插入
时
,如果
select
的表是innodb类型的,不论insert的表是什么类型的表,都会对
select
的表的纪录进行
锁定
。对于那些从oracle迁移过来的应用,需要特别的注意,因为oracle并不存在类似的
问题
,所以在oracle的应用中insert...
select
...操作非常的常见。例如:有
时
候会对比较多的纪录进行统计分析,然后...
mysql
select
for_
MySQL
在事务中使用
SELECT
... FOR UPDATE
在数据库的操作中,经常发生数据并发更新的情况,这
时
可以使用
SELECT
… FOR UPDATE语句对数据加锁保证数据更新的正常执行。下图所示为一张学生成绩表,现在开启两个终端会话模拟数据的并发操作。(开启终端会话可以使用
MySQL
Shell,安装和使用方法详见另一篇博文如何使用
MySQL
Shell连接数据库)先开启第一个会话,依次执行以下语句将id为3的
记录
中数学成绩加10:start tr...
记录
不存在如何加锁
MySQL
_innodb
select
for update 没有满足条件的
记录
的情况下 是怎么加锁的呢?...
在REPEATABLE-READ隔离级别下,如果两个线程同
时
对同一张表用
SELECT
…FOR UPDATE加锁,在没有符合该条件
记录
情况下,两个线程都会加锁成功。程序发现
记录
尚不存在,就试图插入一条新
记录
,如果两个线程都这么做,就会出现死锁。这是什么原因呢?//session_1
mysql
>
select
@@tx_isolation;+-----------------+| @@tx_is...
MySQL
select
加锁分析
InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点
MySQL
与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁!下面讨论是基于InnoDB引擎、事务隔离级别:可重复读和串行化表数据如下,pId为主键索引。...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章