Вызывает ли хранимая процедура MySQL очередь? - PullRequest
0 голосов
/ 04 марта 2019

У меня есть хранимая процедура sp_performArchive (), которая несколько раз вызывает другую хранимую процедуру.Вот так -

CREATE DEFINER=`root`@`%` PROCEDURE `sp_performarchive`()
BEGIN
CALL sp_archive2('pallets', 4);
CALL sp_archive2('cases', 4);
CALL sp_archive2('prepacks', 4);
CALL sp_archive2('bottles', 4);
END

У меня есть некоторые странности в моих данных, которые можно было бы объяснить, если бы эти sp_archive2 работали одновременно.Это тот случай здесь?MySQL пытается запустить их все сразу?Или они помещены в очередь?

Я использую MySQL 5.6.

1 Ответ

0 голосов
/ 04 марта 2019

Каждый сеанс MySQL является однопоточным, поэтому ни один сеанс не может запустить эти хранимые процедуры параллельно.Операторы в процедуре выполняются последовательно.

Вы можете иметь условия гонки, но это может произойти, только если вы выполняете процедуры в более чем одном сеансе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...