编写一个慢查询来测试慢查询日志记录?

Dav*_*uer 19 mysql performance slow-log

是否有一个需要 > 2 秒的简单查询,以便我可以测试慢查询记录器?

我正在寻找类似通用递归或迭代语句的东西。

Der*_*ney 27

一个简单的查询是:

SELECT SLEEP(2);
Run Code Online (Sandbox Code Playgroud)

你想迭代它吗?

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)
Run Code Online (Sandbox Code Playgroud)

或者,如果您只想测试您的 slow_query_log,请将“ long_query_time ”更改为 0(以记录所有查询):

SET long_query_time=0;
Run Code Online (Sandbox Code Playgroud)