Как и когда правильно использовать SLEEP() в MySQL?

Опубликовано: 6 Января, 2023

Предварительные требования: MySQL – Введение

MySQL имеет много полезных, но еще не изученных функций. SLEEP() является одним из них. SLEEP — это запрос, который приостанавливает процесс MySQL на заданное время. Если мы даем NULL или отрицательное значение, запрос выдает предупреждение или ошибку. Если проблем или ошибок нет, запрос возобновляет процесс с возвращаемым значением 0. Продолжительность, указанная для SLEEP, всегда должна быть меньше, чем wait_timeout,interactive_timeout, чтобы избежать ошибок или предупреждений при выполнении.

  1. wait_timeout: это переменная, которая показывает, сколько секунд MySQL будет ждать, прежде чем убить любой незанятый процесс.
  2. Interactive_timeout: это переменная, которая показывает, сколько секунд MySQL будет ждать, прежде чем убить любой активный процесс.

Синтаксис:

SELECT SLEEP(duration);

DO SLEEP(duration);

Где ' длительность ' может быть любым положительным целым числом. Дается в секундах.

Зачем нам нужен СОН()?

1. Чтобы отложить регистрацию запросов:

В этом случае продолжительность сна должна быть больше времени, необходимого для выполнения запроса, который мы хотим зарегистрировать. Например:

Запрос:

SELECT * FROM user;

Предположим, что этот запрос выполняется 1000 секунд. Итак, у нас будет SLEEP() как:

Запрос:

SELECT SLEEP(1010);

2. Для тестирования асинхронных запросов:

Мы используем SLEEP в этом сценарии, чтобы приостановить выполнение до тех пор, пока не будут выполнены все предыдущие запросы.

Выход:

В приведенном выше выходном изображении мы используем SELECT SLEEP(10); Здесь 10 — время, указанное в секундах. Таким образом, выполнение будет приостановлено на 10 секунд, а затем мы увидим результат запроса. Вы можете ясно видеть, что запрос занял 10,0069 секунд для общего выполнения.