DELIMITER $$ CREATE OR REPLACE PROCEDURE InsertIntoLknmT2() BEGIN -- Try building SQLs with long literal list and execute them, -- to see if there is memory leak DECLARE i INT DEFAULT 0; DECLARE id CHAR(9); DECLARE sql_base TEXT DEFAULT 'INSERT INTO lknm.t2 VALUES '; DECLARE sql_stmt TEXT; WHILE i <= 9999999 DO SET id = LPAD(i, 8, '0'); SET id = CONCAT('A', id); IF i % 1000 = 0 THEN SET sql_stmt = CONCAT(sql_base, "('", id, "', 'AAAA', NOW())"); ELSE SET sql_stmt = CONCAT(sql_stmt, ", ('", id, "', 'AAAA', NOW())"); END IF; IF i % 1000 = 999 THEN -- select i, sql_stmt; PREPARE stmt FROM sql_stmt; EXECUTE stmt; DEALLOCATE PREPARE stmt; COMMIT; SET sql_stmt = sql_base; END IF; SET i = i + 1; END WHILE; END $$ DELIMITER ; truncate table lknm.t2; flush query cache; flush tables; CALL InsertIntoLknmT2(); -- Elapsed time: 6 min. 15 sec. -- Memory at node 2 increased from 56.7% to 61.2% and stayed there.