MySQL SLEEP() 命令的正確使用方法
-
在 MySQL 中使用
SLEEP()
命令 -
在 MySQL 中使用
DO SLEEP()
命令 -
MySQL
SLEEP
和DO 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 SLEEP
和 DO SLEEP
之間的區別
SLEEP()
和 DO SLEEP()
之間的區別在於 SLEEP()
返回結果而 DO SLEEP()
不返回結果。
MySQL SLEEP()
在查詢語句中的行為
在查詢語句中使用時,SLEEP()
的持續時間取決於返回的記錄。如果表不包含記錄,MySQL 將不會休眠。
但是,如果表有記錄,則睡眠時間為 n * table records
,其中 n
是睡眠時間。
為了證明這一點,請執行以下操作。
- 在 MySQL 中建立一個資料庫,並在這個資料庫中建立一個新表。
- 在表中插入一些記錄。
- 使用
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 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