MySQL SLEEP() 命令的正確使用方法

Habdul Hazeez 2023年1月30日 2022年7月12日
  1. 在 MySQL 中使用 SLEEP() 命令
  2. 在 MySQL 中使用 DO SLEEP() 命令
  3. MySQL SLEEPDO SLEEP 之間的區別
  4. MySQL SLEEP() 在查詢語句中的行為
MySQL SLEEP() 命令的正確使用方法

本文教你兩種方式來展示如何使用 MySQL sleep 命令。第一個涉及使用 SLEEP(),第二個是 DO SLEEP()

你還將瞭解查詢語句中 SLEEP() 的行為。

在 MySQL 中使用 SLEEP() 命令

以下是如何在 MySQL 中使用 SLEEP()

SELECT SLEEP(10);

從上面的 SQL 中,MySQL SLEEP() 函式將數字 10 作為引數。這個數字決定了 SLEEP() 將在伺服器執行緒中佔用的秒數。

使用 SELECT SLEEP(10);,MySQL 在十秒鐘內無法做其他工作。那是因為它會用完執行緒堆疊。

以下是前一個 sleep 命令的輸出。

+-----------+
| SLEEP(10) |
+-----------+
|         0 |
+-----------+
1 row in set (10.00 sec)

在 MySQL 中使用 DO SLEEP() 命令

DO SLEEP()SLEEP() 的作用相同,但它不會返回任何結果。以下是它的工作原理。

DO SLEEP(10);

SLEEP () 一樣,當你執行前面的 SQL 時,它會等待 10 秒才能繼續。但是,它返回如下所示的空結果。

Query OK, 0 rows affected (10.01 sec)

MySQL SLEEPDO SLEEP 之間的區別

SLEEP()DO SLEEP() 之間的區別在於 SLEEP() 返回結果而 DO SLEEP() 不返回結果。

MySQL SLEEP() 在查詢語句中的行為

在查詢語句中使用時,SLEEP() 的持續時間取決於返回的記錄。如果表不包含記錄,MySQL 將不會休眠。

但是,如果表有記錄,則睡眠時間為 n * table records,其中 n 是睡眠時間。

為了證明這一點,請執行以下操作。

  1. 在 MySQL 中建立一個資料庫,並在這個資料庫中建立一個新表。
  2. 在表中插入一些記錄。
  3. 使用 SELECT *, SLEEP (n) from <table_name>。其中 n 是睡眠時間,table_name 是你的表名。

例如,在下面,表 users 具有三個記錄。當我們執行 SQL 程式碼時,MySQL 將等待 30 秒。

那是 number_of_records * sleep_time,即 3 * 10

SELECT *, SLEEP(10) FROM users;

輸出:

+---------+----------+-----------+
| user_id | username | SLEEP(10) |
+---------+----------+-----------+
|       1 | Delft    |         0 |
|       2 | Stack    |         0 |
|       3 | Website  |         0 |
+---------+----------+-----------+
3 rows in set (30.02 sec)
Habdul Hazeez avatar Habdul Hazeez avatar

Habdul Hazeez is a technical writer with amazing research skills. He can connect the dots, and make sense of data that are scattered across different media.

LinkedIn