如果某行记录被事务锁住了,select ... for update、或select ... for share事务对相同的行加锁的时候必须等待,直到产生阻塞的事务释放锁。

为了避免等待事务释放锁定的行,nowait和skip locked选项可以被用于select ... for update或select ... for share语句:

·nowait:使用了nowait选项的锁定读操作,会立即执行,如果读的记录被锁定了就会报错

·skip locked:使用了skip locked选项的锁定读操作,会立即执行,如果读的记录被锁定了就会从结果集移除该记录。返回的数据是非一致性的。因此,不适用于常规的事务。

nowait和skip locked只适用于行级锁。

nowait和skip locked对于基于语句的复制是不安全的。

# Session 1:

mysql> CREATE TABLE t (i INT, PRIMARY KEY (i)) ENGINE = InnoDB;

mysql> INSERT INTO t (i) VALUES(1),(2),(3);

mysql> START TRANSACTION;

mysql> SELECT * FROM t WHERE i = 2 FOR UPDATE;

+---+

| i |

+---+

| 2 |

+---+

# Session 2:

mysql> START TRANSACTION;

mysql> SELECT * FROM t WHERE i = 2 FOR UPDATE NOWAIT;

ERROR 3572 (HY000): Do not wait for lock.

# Session 3:

mysql> START TRANSACTION;

mysql> SELECT * FROM t FOR UPDATE SKIP LOCKED;

+---+

| i |

+---+

| 1 |

| 3 |

+---+

mysql no wait_MySQL 8.0新特性 -- nowait以及skip locked相关推荐

  1. mysql update nowait_MySQL 8.0新特性 -- nowait以及skip locked

    如果某行记录被事务锁住了,select ... for update.或select ... for share事务对相同的行加锁的时候必须等待,直到产生阻塞的事务释放锁. 为了避免等待事务释放锁定的 ...

  2. mysql sha256函数_MySQL8.0新特性——默认使用caching_sha2_password作为身份验证插件

    mysql5.8开始将caching_sha2_password作为默认的身份验证插件 该caching_sha2_password和 sha256_password认证插件提供比mysql_nati ...

  3. MySQL8.0新特性——锁读取

    MySQL8.0 InnoDB支持 NOWAIT和SKIP LOCKED选项SELECT ... FOR SHARE以及SELECT ... FOR UPDATE锁定读取语句. NOWAIT如果请求的 ...

  4. sql server的密码采用自带什么密码技术存储_【技术分享】浅谈MYSQL 8.0新特性

    于树文 云技术管理处 01 MySQL 8.0中添加的功能 1. 新的系统字典表 整合了存储有关数据库对象信息的事务数据字典,所有的元数据都用InnoDB引擎进行存储. 2. 支持DDL 原子操作 I ...

  5. MySQL 8.0新特性--CTE Recurive(二)

    上一篇介绍了CTE的基本用法,参考MySQL 8.0新特性--CTE(一),本篇再来介绍一下CTE Recurive递归. 1.什么是CTE Recurive? A recursive common ...

  6. mysql8.0创建属性,MySQL 8.0新特性 — 管理端口的使用简介

    前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root ...

  7. mysql sdi_MySQL 8.0新特性: 数据字典

    一.概述 数据字典(Data Dictionary)中存储了诸多数据库的元数据信息,包括基本Database, table, index, column, function, trigger, pro ...

  8. mysql 6.0 新特性 2014_MySQL 各版本的特性

    Mysql5.5 特性,相对于Mysql5.1 性能提升 默认存储引擎更改为 InnoDB引擎.具有提交.回滚和宕机恢复功能 和ACID兼容. 行级锁. 表与索引存储在表空间中, 表大小无限制. 支持 ...

  9. mysql 直方图统计_MySQL 8.0 新特性之统计直方图

    原标题:MySQL 8.0 新特性之统计直方图 | 译者简介 译者 韩杰·沃趣科技MySQL数据库工程师 熟悉mysql体系架构.主从复制,熟悉问题定位与解决 出品 沃趣科技 原文链接: https: ...

最新文章

  1. $(shell expr $(MAKE_VERSION) \= 3.81) 这里“\”的解释
  2. php增删改查心得体会,php增删改查入门示例
  3. dojo helloworld
  4. 北邮计算机学院崔哲域,邂逅北邮 是最美的期待—北京邮电大学2019级本科生开学典礼采访纪实...
  5. android fm模块学习,AndroidFM模块学习之5关闭FM流程
  6. Asp.Net Core 2.1+的视图缓存(响应缓存)
  7. linux mysql 运行状态_Linux中使用mysqladmin extended-status配合Linux命令查看MySQL运行状态...
  8. 基于Mac环境搭建以太坊私有区块链进行挖矿模拟
  9. python训练模型太大怎么处理_趣味Python之如何降低过拟合风险
  10. C++函数指针和类成员函数指针
  11. 学会判断Web安全网关的性能
  12. 漫谈CGI FastCGI WSGI
  13. activiti学习
  14. 400款营销策划PPT模板免费下载
  15. APP中使用UI交互设计动效的三个好处
  16. windows 10 vs2017 x264的编译和使用测试
  17. 【数学基础】KKT条件
  18. typescript 中 any 和 unknow 区别
  19. 爬虫剑谱第十页(关于拼多多商品信息的爬取<修改版>)
  20. git与Coding仓库代码创建

热门文章

  1. java中的方法参数
  2. (Android机)不要随意安装Xposed插件,不然可能遭受财产损失
  3. uniapp 登录、注册页面
  4. 小米6系统 Android版本,追赶华为! 小米开启安卓8.0系统适配, 小米6最先更新!
  5. 【Qt学习】---- 实战|菜单栏
  6. 新建After Effect项目
  7. 国行new moto x升级android6,喜大普奔:国行MOTO升级Android6.0计划终于来了
  8. 李忠汇编语言-初学-第十四天
  9. 在Unity中创建基于Node节点的编辑器 (一)
  10. 千峰培训_前端_day03_3d旋转相册