Die richtige Art, den MySQL SLEEP()-Befehl zu verwenden
-
Verwendung des
SLEEP()
-Befehls in MySQL -
Verwenden Sie den
DO SLEEP()
-Befehl in MySQL -
der Unterschied zwischen MySQL
SLEEP
undDO SLEEP
-
das Verhalten von MySQL
SLEEP()
in einer Abfrageanweisung
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.
- Erstellen Sie eine Datenbank in MySQL und erstellen Sie eine neue Tabelle in dieser Datenbank.
- Fügen Sie einige Datensätze in die Tabelle ein.
- Verwenden Sie
SELECT *, SLEEP (n) from <table_name>
. Wobein
die Ruhezeit undtable_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 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