Вот ! Я знал, что этим foregin ключам доверять нельзя.
Человек пишет:
"Сценарий: хорошо нагруженный кластер (Galera+MariaDB, несколько толстых машин). Есть таблица "users" в которой постоянно случаются LOW_PRIORITY обновления неключевых полей. Есть другая таблица с внешним ключом user_id. Делаем bulk-insert на 30000 строк в эту таблицу (транзакция, ~100 команд по 300 строк в каждой). Получаем deadlock и откат транзакции. Через N попыток повтора транзакции кластер начинает разваливаться под грузом блокировок.
Проблема описана Зайцевым ещё в 2006-м году:
https://www.percona.com/blog/2006/12/12/innodb-locking-and-foreign-keys/В общем пока что мы выключили внешний ключ на той «второй» таблице и оно заработало. "