установить autocommit = 0 не вступать в силу в хранимых процедурах - PullRequest
0 голосов
/ 09 ноября 2018

Я хочу протестировать сцену, которая вставляет около 100 000 данных, и обнаружил, что если я установлю автокоммит VARIABLES на ноль и выполню хранимые процедуры 1, а затем сбросу автокоммит на 1, это займет всего около 0,2 с;но если я извлекаю тираж из хранимых процедур 1 как хранимые процедуры 2 и выполняю его 10000 раз, это занимает около 26 секунд, похоже, что база данных все еще фиксируется при вызове хранимых процедур 2 каждый раз, даже если отключена автоматическая фиксация.Почему это случилось?Спасибо за ваш ответ.

хранимые процедуры 1:

DECLARE i INT DEFAULT 0; 
SET i=0;
WHILE i<10000 DO
INSERT INTO `test_table` ( `objectType`, `addedDate`, `editedDate`) 
VALUES ('task','2017-11-17 15:44:23', '2017-11-17 15:44:23');
SET i=i+1;
END WHILE; 

хранимые процедуры 2: вызовите этот sp 10000 раз

INSERT INTO `test_table` ( `objectType`, `addedDate`, `editedDate`) 
VALUES ('task','2017-11-17 15:44:23', '2017-11-17 15:44:23');

autocommit:OFF
...