Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да предизвикам блокиране на MySQL

Има множество публикации за това чрез използване на две сесии.

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да създам изчислено поле в mysql?

  2. MySQL SELECT и ORDER BY

  3. Прост оператор If Else в sql

  4. Как да премахнете лоши знаци, които не са подходящи за utf8 кодиране в MySQL?

  5. MySQL при актуализация на дублиран ключ