mysql死锁 简单例子_写一个Mysql死锁的例子
创建表
CREATE TABLE `test1` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(10) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
终端1
--T1时刻
BEGIN;
--行级锁 id=1 的记录
select * from test1 where id=1 for update ;
--T3时刻
--更新 id=2 的记录
update test1 set id=id where id=2;
终端2
--T2时刻
BEGIN;
--行级锁 id=2 的记录
select * from test1 where id=2 for update ;
--T4时刻
--更新 id=1 的记录
update test1 set id=id where id=1;
运行结果
update test1 set id=id where id=1
> 1213 - Deadlock found when trying to get lock; try restarting transaction
> 时间: 0.002s
分析
终端一在T1时刻 test1 表的id=1的记录加了排它锁
终端二在T2时刻 test1 表的id=2的记录加了排它锁
终端一在T3时刻要去更新test1表中id=2的记录,此时该行记录已经加了排它锁,无法进行更新操作,需要等待锁释放
终端二在T4时刻要去更新test1表中id=1的记录,此时该行记录已经加了排它锁,无法进行更新操作,需要等待锁释放
.....
这两个事务相互等待对方的排它锁释放,如此出现了死锁
mysql死锁 简单例子_写一个Mysql死锁的例子相关推荐
- java单链表例子_写一个java链表的例子?随便举例说一下。
展开全部 //单链表类 package dataStructure.linearList; import dataStructure.linearList.Node; //导入单链表结点类 impor ...
- mysql视频教程特密码_分享一个MySQL 密码增强插件
介绍 以前没有太注意MySQL密码安全策略的配置方法,只是人为了将密码设为复杂密码,但是没有找到配置的方法,今天姜承尧的微信公众号正好发布了一篇关于这个的文章,所以在这里也顺便将方法写下来.首先该功能 ...
- mysql悲观锁测试_测试一个mysql 悲观锁
创建一个存储过程 在存储过程中 先查询 一个表 for update 见代码: DELIMITER $$ DROP PROCEDURE IF EXISTS test_sp1 $$ CREATE ...
- mysql的覆盖语句_求教一个mysql查询问题:为什么我的SQL语句不能覆盖所有情况?内详...
mysql 查询 select count(*) from t1 where col1 > 0 339074条 select count(*) from t1 where col1 > 0 ...
- shell备份mysql思路_写一个shell脚本备份mysql数据库的步骤
写一个shell脚本备份mysql数据库的步骤 发布时间:2020-05-25 15:47:41 来源:51CTO 阅读:221 作者:三月 下文我给大家简单讲讲关于写一个shell脚本备份mysql ...
- 写一个MySql存储过程实现房贷等额本息还款计算(另外附javascript代码)
写一个MySql存储过程实现房贷等额本息还款计算 MySql存储过程代码如下: DROP procedure IF EXISTS `calc_equal_interest_proc`;DELIMITE ...
- mysql权重怎么配置_实现一个简单的mysql带权重的中文全文搜索
自己在写一个web,希望对数据库做全文检索.但是google了解到,由于中文分词的缘故,mysql只支持英文的全文搜索,想支持中文的,需要各种插件or实现一些比较复杂的机制,而买的虚拟主机并不支持这些 ...
- python爬虫下载电影百度文档_写一个python 爬虫爬取百度电影并存入mysql中
目标是利用python爬取百度搜索的电影 在类型 地区 年代各个标签下 电影的名字 评分 和图片连接 以及 电影连接 首先我们先在mysql中建表 create table liubo4( id in ...
- mysql备份到制定目录_写一个脚本定时自动备份mysql到指定目录
编写一个shell脚本每天16:30备份mysql数据并压缩打包(打包文件按照当天的日期命名)放到/root/data #cd /root #vim mysqlbackup.sh #!/bin/bas ...
最新文章
- id文本框适应文字_国家宣布!快递要大降价?个人ID将取代邮政编码
- C#连接Oracle数据库的方法(Oracle.DataAccess.Client也叫ODP.net)
- 可重入函数与不可重入函数(转)
- 【收藏】13个CSS3快速必备开发工具
- Azure data studio 跨平台数据库管理工具试用
- MVC3 中使用Unity实现依赖注入
- mac识别androidUSB调试
- 高级JAVA - 多线程之CountDownLatch
- ubuntu server设置时区和更新时间
- 真正的Go编译器与链接器在哪里?
- C++中extern关键字
- Python数据挖掘-词频统计-实现
- (补充知识)DLL 中 .DEF文件的使用
- CountDownLatch和CyclicBarrier 举例详解
- Mac OS X 安装ruby环境
- javaweb实现不刷新网页更改页面内容
- 寻找因数——算法简化
- python删除excel指定行_python实现Excel删除特定行、拷贝指定行操作
- fone喜获“2018中国企业绩效管理信息化最佳产品奖”
- VS2017专业版和企业版下载激活
热门文章
- 20172316 2017-2018-2《程序设计与数据结构》第七周学习总结
- day64 django django零碎知识点整理
- JSLint报错翻译
- 结对编程-黄金点游戏之旅[二]
- 【VS开发】COM组件技术概述
- POJ 3415 (后缀数组)
- BugFree在Windows Server 2003+IIS 6+MySQL的配置
- [转载] numpy.reshape用法(自用)
- [转载] Spring的数据库操作---- Spring框架对JDBC的整合---- spring集成jdbc概述
- 数据库Sharding的基本思想和切分策略(转)