博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL 死锁案例
阅读量:6430 次
发布时间:2019-06-23

本文共 799 字,大约阅读时间需要 2 分钟。

hot3.png

下列的例子演示当锁定请求可能会导致死锁之时一个错误会如何发生。例子中包括两个客户端A和B。首先客户端A创建一个包含一个行的表,然后开始一个事务。在这个事务内,A通过在共享模式选择行获得对行的S 锁定:mysql> CREATE TABLE t (i INT) ENGINE = InnoDB;Query OK, 0 rows affected (1.07 sec) mysql> INSERT INTO t (i) VALUES(1);Query OK, 1 row affected (0.09 sec) mysql> START TRANSACTION;Query OK, 0 rows affected (0.00 sec) mysql> SELECT * FROM t WHERE i = 1 LOCK IN SHARE MODE;+------+| i    |+------+|    1 |+------+1 row in set (0.10 sec)接着,客户端B开始一个事务并尝试从该表删除行:mysql> START TRANSACTION;Query OK, 0 rows affected (0.00 sec) mysql> DELETE FROM t WHERE i = 1;删除操作要求一个X 锁定。因为这个锁定不兼容客户端A持有的S锁定,所以X 锁定不被允许,所以请求进入对行及客户端阻挡的锁定请求队列。最后,客户端A也试图从表中删除该行:mysql> DELETE FROM t WHERE i = 1;ERROR 1213 (40001): Deadlock found when trying to get lock;try restarting transaction

 

转载于:https://my.oschina.net/sansom/blog/152921

你可能感兴趣的文章
【转载】秒到oep,支持所有壳,包括vmp
查看>>
(转)Flex的编译过程--ActionScript字节码(ABC)
查看>>
[zz]轻量级虚拟机-TinyVM
查看>>
Directory Listing Denied
查看>>
NYOJ576174问题
查看>>
HDUOJ1005Number Sequence
查看>>
R-基础测试(1)
查看>>
技术人生:每天进步一点点
查看>>
今天讲座的感悟--java
查看>>
o(1)复杂度之双边滤波算法的原理、流程、实现及效果。
查看>>
Logcat多tag过滤
查看>>
corner2
查看>>
我见过的几种类型的员工(转)
查看>>
web前端的十种jquery特效及源码下载
查看>>
poj 3414 Pots (bfs+线索)
查看>>
Binary search
查看>>
http://jingyan.baidu.com/article/08b6a591f0fafc14a9092275.html
查看>>
MySQL查询数据表的Auto_Increment(自增id)
查看>>
java多线程系类:JUC集合:01之框架
查看>>
【Linux】 源码安装make命令详解,避免踩坑
查看>>