Проверка статуса InnoDB для блокировок
SHOW ENGINE InnoDB STATUS;
Проверка открытых таблиц MySQL
SHOW OPEN TABLES WHERE In_use > 0;
Проверка ожидающих транзакций InnoDB
SELECT * FROM `information_schema`.`innodb_trx` ORDER BY `trx_started`;
Проверка зависимости блокировки - что блокирует, что
SELECT * FROM `information_schema`.`innodb_locks`;
После изучения приведенных выше результатов вы сможете увидеть, что блокирует и что.
Основная причина проблемы также может быть в вашем коде - пожалуйста, проверьте соответствующие функции, особенно для аннотаций, если вы используете JPA, например Hibernate.
Например, как описано здесь , неправильное использование следующей аннотации может вызвать блокировки в базе данных:
@Transactional(propagation = Propagation.REQUIRES_NEW)