La bonne façon d'utiliser la commande MySQL SLEEP()

Habdul Hazeez 30 janvier 2023
  1. Utilisez la commande SLEEP() dans MySQL
  2. Utilisez la commande DO SLEEP() dans MySQL
  3. la différence entre MySQL SLEEP et DO SLEEP
  4. le comportement de MySQL SLEEP() dans une instruction de requête
La bonne façon d'utiliser la commande MySQL SLEEP()

Cet article vous apprend deux manières de montrer comment utiliser la commande MySQL sleep. Le premier consiste à utiliser sleep, et le second est DO SLEEP().

Vous apprendrez également le comportement de SLEEP() dans une instruction de requête.

Utilisez la commande SLEEP() dans MySQL

Voici comment utiliser SLEEP() dans MySQL.

SELECT SLEEP(10);

A partir du SQL ci-dessus, la fonction MySQL SLEEP() prend le nombre 10 comme paramètre. Ce nombre détermine le nombre de secondes que SLEEP() occupera dans le thread du serveur.

Avec SELECT SLEEP(10);, MySQL ne peut pas faire d’autre travail pendant dix secondes. C’est parce qu’il utilisera la pile de threads.

Voici la sortie de la commande sleep précédente.

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

Utilisez la commande DO SLEEP() dans MySQL

DO SLEEP() fonctionne de la même manière que SLEEP(), mais il ne renverra aucun résultat. Voici comment cela fonctionne.

DO SLEEP(10);

Comme SLEEP(), lorsque vous exécutez le SQL précédent, il attendra 10 secondes avant de continuer. Cependant, il renvoie un résultat vide illustré ci-dessous.

Query OK, 0 rows affected (10.01 sec)

la différence entre MySQL SLEEP et DO SLEEP

La différence entre SLEEP() et DO SLEEP() est que SLEEP() renvoie un résultat alors que DO SLEEP() ne le fait pas.

le comportement de MySQL SLEEP() dans une instruction de requête

Lorsqu’il est utilisé dans une instruction de requête, la durée de SLEEP() dépend des enregistrements renvoyés. Si la table ne contient aucun enregistrement, MySQL ne dormira pas.

Cependant, si la table contient des enregistrements, le temps de repos est n * enregistrements de tablen est le temps de repos.

Pour le prouver, procédez comme suit.

  1. Créez une base de données dans MySQL et créez une nouvelle table dans cette base de données.
  2. Insérez des enregistrements dans la table.
  3. Utilisez SELECT *, SLEEP (n) à partir de <table_name>. Où n est le temps de veille et table_name est le nom de votre table.

Par exemple, dans ce qui suit, la table users comporte trois enregistrements. Lorsque nous exécutons le code SQL, MySQL attendra 30 secondes.

C’est nombre_d'enregistrements * temps_de_sommeil qui est 3 * 10.

SELECT *, SLEEP(10) FROM users;

Production:

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