创建一个存储过程 在存储过程中  先查询  一个表  for  update

见代码:

DELIMITER $$

DROP PROCEDURE IF EXISTS test_sp1 $$

CREATE PROCEDURE test_sp1( )

BEGIN

DECLARE t_error INTEGER DEFAULT 0;

DECLARE COUNT INT DEFAULT 0;

DECLARE SUM INT DEFAULT 0;

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1;

START TRANSACTION;

SELECT * FROM srv_my_service WHERE id =1 FOR UPDATE;

WHILE COUNT < 100000000 DO

SET SUM = SUM + COUNT;

SET COUNT = COUNT + 1;

END WHILE;

SELECT SUM;

IF t_error = 1 THEN

ROLLBACK;

ELSE

COMMIT;

END IF;

SELECT t_error;

END$$

新打开一个窗口 ,执行查询

SELECT * FROM srv_my_service WHERE id =1 FOR UPDATE;

执行此语句,将一直处于等待状态

原因是上一存储过程先执行查询  使用for update 占用X锁,在事务没有提交的情况下,新的窗口使用 for update 查询则一个处于阻塞等待

因为上一存储过程一直没有释放X锁.

执行下面的语句,可以正常执行.

SELECT * FROM srv_my_service WHERE id =2 FOR UPDATE;

说明mysql 此时使用行锁,

执行下面的语句

SELECT * FROM srv_my_service FOR UPDATE;

任然阻塞等待

同理,执行如下语句仍然的带上面的结果

UPDATE srv_my_service SET srv_no ='323345454523434' WHERE id = 2

UPDATE srv_my_service SET srv_no ='323345454523434'

UPDATE srv_my_service SET srv_no ='323345454523434' WHERE id = 1

mysql悲观锁测试_测试一个mysql 悲观锁相关推荐

  1. mysql视频教程特密码_分享一个MySQL 密码增强插件

    介绍 以前没有太注意MySQL密码安全策略的配置方法,只是人为了将密码设为复杂密码,但是没有找到配置的方法,今天姜承尧的微信公众号正好发布了一篇关于这个的文章,所以在这里也顺便将方法写下来.首先该功能 ...

  2. mysql的覆盖语句_求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详...

    mysql 查询 select count(*) from t1 where col1 > 0 339074条 select count(*) from t1 where col1 > 0 ...

  3. mysql死锁 简单例子_写一个Mysql死锁的例子

    创建表 CREATE TABLE `test1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) NOT NULL, PRIMAR ...

  4. 如何linux查看mysql目录下日志_测试人员如何在linux服务器中查询mysql日志?

    测试工程师在测试软件的过程中,流程往往是先接口测试,接着就是功能性测试.在做功能性测试的时候,往往有这么一个工作场景,就是出现错误后,我们怎么快速排除数据库报错. 举例某个电商网站,当我们文本框中输入 ...

  5. mysql共享锁使用方法_浅谈Mysql共享锁、排他锁、悲观锁、乐观锁及其使用场景...

    Mysql共享锁.排他锁.悲观锁.乐观锁及其使用场景 一.相关名词 |--表级锁(锁定整个表) |--页级锁(锁定一页) |--行级锁(锁定一行) |--共享锁(S锁,MyISAM 叫做读锁) |-- ...

  6. mysql事务处理是悲观锁还是_数据库事务的悲观锁和乐观锁

    转载出处:http://www.hollischuang.com/archives/934 在数据库的锁机制中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数 ...

  7. mysql begin end 用法_数据库:Mysql中“select ... for update”排他锁分析

    作者:志波同学来源:https://mp.weixin.qq.com/s/8uH-7TD9ZRG4NCya80mOHg Mysql InnoDB 排他锁 用法:select - for update; ...

  8. mysql索引列是锁表还是锁行_[转]关于MYSQL Innodb 锁行还是锁表

    关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况.为什么呢?先看一下这篇文章. 做项目时由于业务逻辑的需要,必须 ...

  9. 织梦mysql占用资源_解决一个 MySQL 服务器进程 CPU 占用 100%的技术笔记

    早上帮朋友一台服务器解决了Mysql cpu 占用 100%的问题.稍整理了一下: 朋友主机(Windows 2003 + IIS + PHP + MYSQL )近来 MySQL 服务进程 (mysq ...

  10. mysql 行锁 超时_技术分享 | MySQL 行锁超时排查方法优化

    作者:xuty 本文来源:原创投稿 * 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源. 一.大纲 #### 20191219 10:10:10,234 | com.ali ...

最新文章

  1. 国内自动驾驶公司争先入局Robotaxi
  2. 微寻,把“线下医院”带到“线上轻松问诊”
  3. 谈谈对于企业级系统架构的理解(zz)
  4. FreeRTOS 中断优先级嵌套错误引发HardFault异常解决
  5. 第39级台阶(暴力搜索)
  6. 【HDU - 5627】Clarke and MST(最大生成树,与运算性质,最小生成树MST变形)
  7. php7 字符串,php7 参数、整形及字符串处理机制修改实例分析
  8. 汽车制造MES介绍之3 - AVI车辆识别与调度
  9. FPGA你必须知道的那些事儿
  10. 往PPT幻灯中添加图片的方法有哪些?
  11. cmd命令检查电脑配置情况
  12. vmware下虚拟机自动换ip的解决办法
  13. 电脑电源问题,导致攒机电脑无法开机
  14. 诊断DB2 Java应用程序的性能问题
  15. 循环视频背景:让网站首页动起来是怎样的一种感觉
  16. 产品Backlog 管理
  17. python 浮点数类型
  18. 2021年G3锅炉水处理考试资料及G3锅炉水处理考试总结
  19. 一百种语言的LOVE
  20. 中国石油大学 2018-2019赛季多校联合新生训练赛第一场 题解与补题

热门文章

  1. 使用PyTorch实现目标检测与跟踪
  2. mysql数据库教学大纲_MySql数据库教学大纲
  3. pon(无源光纤网络)
  4. 3的四次方在计算机上怎么求,“x的4次方+y的4次方”这个怎么因式分解?多年以后我依然记...
  5. 计算机二级考试上机部分可以运行吗,2017计算机二级上机考试中的注意事项
  6. 从自保到开放,华为知识产权价值观之变
  7. 使用DEAP基于K-means的情感计算
  8. Java设计模式七大原则-依赖倒转(倒置)原则
  9. idoc java_java - 将iDOC从Java发送到SAP - 堆栈内存溢出
  10. HC 小区管理系统工单微信模板消息配置说明