gpt4 book ai didi

mysql - 如何导致MySQL死锁

转载 作者:可可西里 更新时间:2023-11-01 06:43:44 25 4
gpt4 key购买 nike

出于测试目的,我需要在 MySQL 上生成一个“1213: Deadlock”,这样 UPDATE 查询就无法更新表。

我不太确定如何导致死锁?

最佳答案

有很多关于使用两个 session 的帖子。

https://dba.stackexchange.com/questions/309/code-to-simulate-deadlock

http://www.xaprb.com/blog/2006/08/08/how-to-deliberately-cause-a-deadlock-in-mysql/

复制自上面第二篇文章的方法

首先,选择一个未使用的表名。我将使用 test.innodb_deadlock_maker。以下是您需要执行的语句:

create table test.innodb_deadlock_maker(a int primary key) engine=innodb;
insert into test.innodb_deadlock_maker(a) values(0), (1);

现在表及其数据已设置。接下来,在两个不同的连接上执行以下操作:

-- 连接0

set transaction isolation level serializable;
start transaction;
select * from test.innodb_deadlock_maker where a = 0;
update test.innodb_deadlock_maker set a = 0 where a <> 0;

-- 连接1

set transaction isolation level serializable;
start transaction;
select * from test.innodb_deadlock_maker where a = 1;
update test.innodb_deadlock_maker set a = 1 where a <> 1;

关于mysql - 如何导致MySQL死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31552766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com