社区
MySQL
帖子详情
mysql select如何锁定数据不被其他用户select
土豆是我的最爱
2020-08-17 04:12:37
Update一条记录时,需要通过Select来检索出其值或条件,然后在通过这个值来执行修改操作。
但当以上操作放到多线程中并发处理时会出现问题:某线程select了一条记录但还没来得及update时,另一个线程仍然可能会进来select到同一条记录。
请问用mysql应该如何解决
...全文
432
3
打赏
收藏
mysql select如何锁定数据不被其他用户select
Update一条记录时,需要通过Select来检索出其值或条件,然后在通过这个值来执行修改操作。 但当以上操作放到多线程中并发处理时会出现问题:某线程select了一条记录但还没来得及update时,另一个线程仍然可能会进来select到同一条记录。 请问用mysql应该如何解决
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
码农码不动
2020-08-23
打赏
举报
回复
看了很多回答,说for update必须得有主键,但是主键都是自增id,我也在想这个怎么解决
luijianfie
2020-08-18
打赏
举报
回复
select for update
trainee
2020-08-18
打赏
举报
回复
如果是innodb引擎的话,加行锁 select ..... for update
select
* from table(nolock) 查询时不对表加锁
博客介绍了
MySQL
中
select
* from table(nolock)语句,nolock是
锁定
选项,查询时不对表加锁。不使用该选项,查询会
锁定
表,防止
数据
被修改,但可能影响
其他用户
访问;使用该选项可提高查询性能,但有
数据
不一致风险。
使用事务与锁,实现一个用户取过的
数据
不被
其他用户
取到
本文介绍如何使用ADO结合事务与锁机制实现
数据
库记录的安全分批读取及
锁定
,确保多用户环境下
数据
不被重复选取。通过具体示例展示如何在不增加额外标志列的情况下,利用SQL Server特性完成这一过程。
MySQL
高级——
Mysql
如何
锁定
一行
数据
本文介绍了如何在
MySQL
中使用InnoDB存储引擎实现行级
锁定
,通过`BEGIN;
SELECT
... FOR UPDATE;`语法
锁定
数据
行,防止并发更新冲突。在示例中,客户端1
锁定
a=8的行,导致客户端2尝试更新该行时被阻塞,直到客户端1执行`COMMIT;`操作。这展示了
MySQL
的事务和
锁定
机制在并发控制中的应用。
mysql
select
不等待_
mysql
进阶(四)
mysql
中
select
本文详细介绍了
MySQL
中FOR UPDATE语句的使用方法及其应用场景。FOR UPDATE用于
锁定
查询结果,确保
数据
在事务期间不被
其他用户
修改。文章通过实例展示了不同的加锁方式及行为,并解释了如何在实际业务中有效运用。
(三)
MySQL
InnoDB非
锁定
一致性读与
锁定
读
本文详细介绍了
MySQL
InnoDB中非
锁定
一致性读和
锁定
读的概念与区别。在REPEATABLE READ隔离级别下,一致性读会在事务内读取同一快照,而在READ COMMITTED级别下每次读取都有新快照。非
锁定
一致性读利用MVCC实现,不适用于某些DDL语句。
锁定
读分为
SELECT
...FOR UPDATE和
SELECT
...LOCK IN SHARE MODE,分别加X锁和S锁,用于避免并发问题。
锁定
读在确保引用完整性和防止死锁场景中尤为关键。
MySQL
57,065
社区成员
56,762
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章