UPDATE rent_contacts SET contacts_mobile='11111' WHERE  rent_unit_code in (SELECT rent_unit_code FROM  rent_unit  );

第一种情况:  条件无索引

sql一执行:

BEGIN;

UPDATE contacts SET mobile='11111' WHERE  code in ('3424342' );

sql二执行 UPDATE contacts SET mobile='11111' WHERE  code in ('1111' );

sql二执行受阻,sql一commit之后,sql二可执行成功

结论:条件无索引,锁表

第二种情况: 条件有索引,in语句是确定的值

sql一执行:

BEGIN;

UPDATE contacts SET mobile='11111' WHERE  code in ('3424342' );

sql二执行 UPDATE contacts SET mobile='11111' WHERE  code in ('1111' );

sql二正常执行,sql二不依赖sql一的commit

结论:条件有索引,锁行

第三种情况: 条件有索引,in语句是复杂查询

sql一执行:

BEGIN;

UPDATE contacts SET mobile='11111' WHERE  code in ( select code from user where id=1);

sql二执行 UPDATE contacts SET mobile='11111' WHERE  code in ('1111' );

sql二执行受阻,sql一commit,sql二正常执行

结论:条件有索引,in语句是不确定的值,锁表

mysql update锁_mysql中update语句的锁相关推荐

  1. mysql innodb 间隙锁_MySQL中InnoDB的间隙锁问题

    在为一个客户排除死锁问题时我遇到了一个有趣的包括InnoDB间隙锁的情形.对于一个WHERE子句不匹配任何行的非插入的写操作中,我预期事务应该不会有锁,但我错了.让我们看一下这张表及示例UPDATE. ...

  2. mysql range用法_MySQL中Explain的用法总结(详细)

    本篇文章给大家带来的内容是关于MySQL中Explain的用法总结(详细),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 执行计划(query Execution plan) 语法e ...

  3. mysql中视图和表的区别及联系_MySQL中Update、select联用操作单表、多表,及视图与临时表的区别...

    一.MySQL中使用从表A中取出数据来更新表B的内容 例如:要update表data中的一些列属性,但是修改属性的内容来源是来自表chanpin.SQL语言中不要显示的出现select关键字 upda ...

  4. mysql数据库的行级锁有几种_MySQL中的行级锁、表级锁、页级锁

    在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎).表级锁(MYISAM ...

  5. mysql a锁_MYSQL中的锁

    前言 刚开始接触MYSQL,对其锁机制并不了解,在项目里面,针对死锁以及锁竞争,约定了两条规则. 对涉及多个业务表的更新,要遵守一定的顺序,如按照TABLE-A,TABLE-B,TABLE-C的次序 ...

  6. mysql默认乐观锁悲观锁_MySQL中悲观锁和乐观锁到底是什么?-阿里云开发者社区...

    索引和锁是数据库中的两个核心知识点,隔离级别的实现都是通过锁来完成的 按照锁颗粒对锁进行划分 ? 锁用来对数据进行锁定,我们可以从锁定对象的粒度大小来对锁进行划分,分别为行锁.页锁和表锁. 行锁就是按 ...

  7. mysql中的乐观锁_MySQL中悲观锁和乐观锁到底是什么?

    索引和锁是数据库中的两个核心知识点,隔离级别的实现都是通过锁来完成的 按照锁颗粒对锁进行划分 ? 锁用来对数据进行锁定,我们可以从锁定对象的粒度大小来对锁进行划分,分别为行锁.页锁和表锁.行锁就是按照 ...

  8. mysql教程or怎么用_MySQL中or语句用法示例

    1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...

  9. mysql数据库 or的用法_MySQL中or语句用法示例

    1.mysql中or语法的使用,在mysql语法中or使用注意点. 项目遇到坑,遍历发放奖励数据查询错误!!! $sql = 'SELECT * FROM `vvt_spread_doubleegg_ ...

最新文章

  1. LeetCode简单题之矩阵中的幸运数
  2. 【长篇连载】桌面管理演义 第八回 电脑中毒很危险 告警隔离防传染
  3. Web服务器和应用程序服务器有什么区别
  4. Java RuntimeException异常处理汇总
  5. js判断是否在iframe和禁止网页在iframe中显示
  6. WEBI 中的参数传递
  7. SAP Cloud for Customer里的individual customer OData服务
  8. 游戏开发中的数学和物理算法(7):角度 vs 弧度
  9. LeetCode 21. 合并两个有序链表(单链表)
  10. 容器技术第一讲:容器入门篇
  11. Ui学习笔记---EasyUI的介绍
  12. 计算机网络(韩立刚网课笔记)
  13. python导入csv报错_Python 导入csv报错的解决办法
  14. 写了个项目 Web-Rtmp: 使用 WebSocket 在网页上播放 RTMP 直播流
  15. 复制含有随机指针节点的链表
  16. Eclipse_设置JSP模板
  17. php中文歌词,酷狗krc歌词解析并转换为lrc歌词php版
  18. FPGA的Zynq 7000学习--基于黑金AX7010开发板的Hello World 实验
  19. 高薪岗位大数据开发工程师要如何入门?【重磅】
  20. wincc安装信息服务器,wincc客户端与服务器配置

热门文章

  1. 除了超分辨率,AI 结合 RTC 还有哪些技术实践?
  2. NYOJ737 石子合并(一)区间动态规划
  3. 接口本地正常服务器报500_运维该如何解决服务器底层维护难题?
  4. django model filter_django中探索如何提高查询数据效率
  5. 01 | 基础架构:一条 SQL 查询语句是如何执行的
  6. springboot使用EntityManager执行自定义SQL
  7. Windows——双系统环境下没有启动Windows 启动管理器(自动跳过操作系统选择界面)解决方案
  8. BugKuCTF WEB web2
  9. CG CTF WEB 上传绕过
  10. [POI2002][HAOI2007]反素数