mysql share mode_mysql锁:mysql lock in share mode 和 select for update
select ... lock in share mode
select ... for update
注意点:
1.都在事务内起作用;
2.所涉及的是行锁(即innodb引擎);
3.保证当前session事务所锁定的行不会被其他session所修改(这里的修改指更新或者删除);
4.select ... lock in share mode是共享锁,语句如:select * from t where id=2 lock in share mode;
5.select ... for update是排它锁,语句如:select * from t where id=2 for update;
6.共享锁允许其他事务加共享锁读取,但是,不允许其他事务去做修改,或者加排它锁,而需要注意的是共享锁容易造成死锁;
7.排它锁更加严格,不允许其他事务加共享锁(但可select读该行)或者排它锁,更加不允许其他事务修改加锁的行。
使用情景:
1.select ... lock in share mode
保证所有人查到的数据是最新数据,应用的场景主从库数据的同步;
2.select ... for update
查到的数据确保是最新数据,并且查到后的数据只允许自己来修改的时候,需要用到 for update 子句,应用的场景库存,并发。
mysql share mode_mysql锁:mysql lock in share mode 和 select for update相关推荐
- mysql分析表锁,MySQL锁分析和监控
通常在MySQL的管理和监控中,Active Session(活动会话)是监控指标中的一个很重要的指标,通过活动会话监控,可以很清楚的了解到数据库当前是否有SQL堆积,是否处于非常繁忙的状态.那么除了 ...
- Mysql 死锁过程及案例详解之清空缓存锁Flush Lock
Mysql 清空缓存锁Flush Lock 清空缓存锁Flush Locks flush table的功能是关闭所有打开的表,强制关闭所有正在使用的表,并刷新准备好的语句缓存. 这种操作需要用户拥有 ...
- MySQL数据库的锁 --- 六种分类 - 14种锁详细介绍
MySQL锁概述 锁是计算机协调多个进程或线程并发访问某一个资源的机制,在数据库中,除传统的计算资源(CPU.RAM.I/O)的争用以外,数据也是一种供许多用户共享的资源.如何保证数据并发访问的一致性 ...
- mysql的乐观锁,悲观锁(共享锁,排斥锁)
mysql的并发操作时而引起的数据的不一致性(数据冲突): 丢失更新:两个用户(或以上)对同一个数据对象操作引起的数据丢失. 解决方案:1.悲观锁,假设丢失更新一定存在:sql后面加上**for up ...
- mysql实现悲观锁_mysql 悲观锁详解
悲观锁指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态.悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层 ...
- mysql suoyin 和锁_Mysql索引与锁
Mysql索引与锁 Mysql索引与锁 本文以Mysql5.7为例测试. 1:mysql索引方法 Mysql的索引方法分为btree索引和hash索引. hash索引:是通过hash计算后比较,所以只 ...
- linux mysql开启事务_linux mysql 相关操作命令
1.linux下启动mysql的命令: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2.linux下重启mysql的命令: mys ...
- Mysql 共享锁(lock in share mode),排他锁(for update)
共享锁(lock in share mode) 简介 允许不同事务之前共享加锁读取,但不允许其它事务修改或者加入排他锁 如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁 共享锁事务之间的读 ...
- mysql update 排他锁_Mysql 共享锁(lock in share mode),排他锁(for update)
共享锁(lock in share mode) 简介 允许不同事务之前共享加锁读取,但不允许其它事务修改或者加入排他锁 如果有修改必须等待一个事务提交完成,才可以执行,容易出现死锁 共享锁事务之间的读 ...
最新文章
- 用C#实现在PowerPoint文档中搜索文本
- kali高速更新源以及主题修改方法
- crontab添加定时任务
- java 读文件夹_java怎么读取读取文件夹下的所有文件夹和文件?
- javascript是一门多线程的语言_Javascript:10天设计一门语言
- Truncated incorrect DOUBLE value: 'xxx'的解决方法
- linux入门指令 详解,Linux基础命令之mktemp详解
- 大数据是如何基于 Flink 进行实时计算的?
- Oracle 安装OEM 报错: 无法对所有EM 相关账户解锁 解决方法
- Linux_创建母版,快速克隆,如何移动虚拟机.ziw
- uni-app 条形码(一维码)/二维码生成实现
- 常见的重要电脑英语及缩写
- Netty权威指南2.1BIO通信Demo代码
- 计算机绘图尺寸标注,计算机绘图AutoCAD尺寸标注演示教学.ppt
- php被挂马,PHP网站被挂马防御战
- lvm卷的缩减和扩容
- 【转载】彻底理解cookie,session,token - 墨颜丶
- 三重积分的概念,计算(先一后二(投影穿线法))
- Android中实现图片编辑功能
- 共享 || 19份2020关于直播的报告
热门文章
- ospf hello时间和dead_网络工程师_思科 | OSPF由简到难,配合命令学
- 安卓系统挂载NTFS格式硬盘_苹果电脑挥之不去的烦恼!怎样兼容NTFS格式的U盘移动硬盘?...
- 混淆矩阵及分类性能评估方法
- scanf( )函数的返回值
- 操作系统--内核级线程实现
- Scrapy源码阅读分析_1_整体框架和流程介绍
- CompletableFuture详解~设置任务结果
- 【itext学习之路】--4.给pdf增加文本水印和图片水印
- oracle 客户端_【数据库 常见术语1】 客户端,服务端
- php xampp bug,PHP网站访问慢的处理方法