[MySQL] mysql 的行级显式锁定和悲观锁
2023-02-18 15:46:55 时间
隐式和显式锁定:
1.innodb是两阶段锁定协议,隐式锁定比如在事务的执行过程中.会进行锁定,锁只有在commit或rollback的时候,才会同时被释放
2.特定的语句进行显式锁定 select ... lock in share mode ; select ... for update,where条件里面的必须是主键,否则会锁整张表
3.需要用在事务中使用,并且两个查询都需要for update才能阻塞住另一个去读,也就是实现写锁,阻塞别的读锁,悲观排他的目的
4.如果不想开启事务,就把autocommit关掉,这样默认就是开启事务了,每次都要commit才行
测试:
会话1开启事务,并且select ... where id=1 for update
会话2也去select ... where id=1 for update,会被阻塞,普通的select没有影响
相关文章
- ASP.NET MVC中使用jQuery Ajax通过FormData对象异步提交图片文件到服务端保存并返回保存的图片路径
- .NET中将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),并使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA
- SQL中关于Join、Inner Join、Left Join、Right Join、Full Join、On、 Where区别
- Web Deploy配置和使用Visual Studio进行Web项目发布部署
- .Net WebApi中使用Session使用
- .NET之NPOI Excel数据导出和批量导入功能
- MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
- 常用正则表达式
- Packets larger than max_allowed_packet are not allowed(mysql数据查询提示:不允许超过允许的最大数据包)解决方案
- .NET轻松实现支付宝服务窗网页授权并获取用户相关信息
- C#在window服务配置Log4Net.dll
- 致于即将逝去的2108年,2019年您好
- 关于:未能加载文件或程序集“ICSharpCode.SharpZipLib”或它的某一个依赖项异常的解决方案
- Visual Studio编辑器还原项目NuGet提示某 NuGet 程序包还原失败:找不到“xxx”版本的程序包“xxx”
- 微信公众平台网页登录授权多次重定向跳转,导致code使用多次问题
- Visual Studio高效实用的扩展工具、插件
- 关于微信企业付款到零钱X509Certificate2读取证书信息,发布到服务器访问不到的解决方案
- 关于ASP.NET MVC 项目在本地vs运行响应时间过长无法访问时,解决方法!
- 彻底关闭windows10自动更新解决方案
- Window10升级遇到大坑错误代码:0xc000000e完美解决方案