MySQL SLEEP() 函数使用指南

MySQL SLEEP() 函数将当前查询暂停(睡眠)指定的秒数。

SLEEP() 语法

这里是 MySQL SLEEP() 函数的语法:

SLEEP(duration)

参数

duration
必需的。 以秒为单位的睡眠时长。它应该大于或等于 0,并且可以带有小数部分。

返回值

MySQL SLEEP() 函数将查询暂停(睡眠)指定的秒数,然后返回 0。如果暂停被中断,则返回 1

如果参数 duration 为负数或者 NULLSLEEP() 函数会产生一个警告,或者在严格模式中产生一个错误。

如果 SLEEP() 是一个查询中唯一调用的东西,它被中断后返回 1

如果 SLEEP() 只是一个查询中的一部分,它被中断后返回一个错误。

SLEEP() 示例

这里结合 SYSDATE() 函数展示了 SLEEP() 的功能。

SELECT
    SYSDATE(),
    SLEEP(10),
    SYSDATE();
+---------------------+-----------+---------------------+
| SYSDATE()           | SLEEP(10) | SYSDATE()           |
+---------------------+-----------+---------------------+
| 2022-05-07 22:03:22 |         0 | 2022-05-07 22:03:32 |
+---------------------+-----------+---------------------+
1 row in set (10.07 sec)

这里,我们看到如下现象:

  • SLEEP(10) 返回了 0
  • 第二个 SYSDATE() 比第一个 SYSDATE() 函数的返回值晚了 10 秒。这是因为中间的 SLEEP(10) 让查询暂停了 10 秒。
  • 1 row in set (10.07 sec) 告诉我们整个查询共花费了 10.7 秒。