DELIMITER $$
DROP FUNCTION IF EXISTS `iterateSleep` $$
CREATE FUNCTION `iterateSleep` (iterations INT)
RETURNS INT DETERMINISTIC
BEGIN
DECLARE remainder INT;
SET remainder = iterations;
read_loop: LOOP
IF remainder=0 THEN
LEAVE read_loop;
END IF;
SELECT SLEEP(2) INTO @test;
SET remainder = remainder - 1;
END LOOP;
RETURN iterations;
END $$
DELIMITER ;
-- TO TEST IT OUT
mysql> SELECT iterateSleep(2);
+-----------------+
| iterateSleep(2) |
+-----------------+
| 2 |
+-----------------+
1 row in set (4.01 sec)
一个简单的查询是:
你想迭代它吗?
或者,如果您只想测试您的 slow_query_log,请将“ long_query_time ”更改为 0(以记录所有查询):
这是一个非常可怕的查询。它是笛卡尔积,使用非 ansi 样式连接。