Die richtige Art, den MySQL SLEEP()-Befehl zu verwenden

Habdul Hazeez 12 Juli 2022
  1. Verwendung des SLEEP()-Befehls in MySQL
  2. Verwenden Sie den DO SLEEP()-Befehl in MySQL
  3. der Unterschied zwischen MySQL SLEEP und DO SLEEP
  4. das Verhalten von MySQL SLEEP() in einer Abfrageanweisung
Die richtige Art, den MySQL SLEEP()-Befehl zu verwenden

Dieser Artikel zeigt Ihnen zwei Möglichkeiten, wie Sie den MySQL-Befehl sleep verwenden können. Die erste beinhaltet die Verwendung von SLEEP() und die zweite ist DO SLEEP().

Sie lernen auch das Verhalten von SLEEP() in einer Abfrageanweisung kennen.

Verwendung des SLEEP()-Befehls in MySQL

Im Folgenden erfahren Sie, wie Sie SLEEP() in MySQL verwenden.

SELECT SLEEP(10);

Aus dem obigen SQL nimmt die MySQL-Funktion SLEEP() die Zahl 10 als Parameter. Diese Zahl bestimmt die Anzahl der Sekunden, die SLEEP() im Server-Thread belegt.

Mit SELECT SLEEP(10); kann MySQL zehn Sekunden lang keine anderen Arbeiten erledigen. Das liegt daran, dass der Thread-Stack verbraucht wird.

Das Folgende ist die Ausgabe des vorherigen sleep-Befehls.

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

Verwenden Sie den DO SLEEP()-Befehl in MySQL

DO SLEEP() funktioniert genauso wie SLEEP(), gibt aber kein Ergebnis zurück. So funktioniert es.

DO SLEEP(10);

Wie bei SLEEP () wird beim Ausführen des vorherigen SQL 10 Sekunden gewartet, bevor fortgefahren wird. Es gibt jedoch ein leeres Ergebnis zurück, das unten gezeigt wird.

Query OK, 0 rows affected (10.01 sec)

der Unterschied zwischen MySQL SLEEP und DO SLEEP

Der Unterschied zwischen SLEEP() und DO SLEEP() besteht darin, dass SLEEP() ein Ergebnis liefert, während DO SLEEP() dies nicht tut.

das Verhalten von MySQL SLEEP() in einer Abfrageanweisung

Bei Verwendung in einer Abfrageanweisung hängt die Dauer von SLEEP() von den zurückgegebenen Datensätzen ab. Wenn die Tabelle keine Datensätze enthält, schläft MySQL nicht.

Wenn die Tabelle jedoch Datensätze enthält, beträgt die Ruhezeit n * Tabellendatensätze, wobei n die Ruhezeit ist.

Um dies zu beweisen, gehen Sie wie folgt vor.

  1. Erstellen Sie eine Datenbank in MySQL und erstellen Sie eine neue Tabelle in dieser Datenbank.
  2. Fügen Sie einige Datensätze in die Tabelle ein.
  3. Verwenden Sie SELECT *, SLEEP (n) from <table_name>. Wobei n die Ruhezeit und table_name Ihr Tabellenname ist.

Im Folgenden hat die Tabelle users beispielsweise drei Datensätze. Wenn wir den SQL-Code ausführen, wartet MySQL 30 Sekunden.

Das ist number_of_records * sleep_time, also 3 * 10.

SELECT *, SLEEP(10) FROM users;

Ausgabe:

+---------+----------+-----------+
| 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