Как и когда правильно использовать SLEEP() в MySQL?
Предварительные требования: MySQL – Введение
MySQL имеет много полезных, но еще не изученных функций. SLEEP() является одним из них. SLEEP — это запрос, который приостанавливает процесс MySQL на заданное время. Если мы даем NULL или отрицательное значение, запрос выдает предупреждение или ошибку. Если проблем или ошибок нет, запрос возобновляет процесс с возвращаемым значением 0. Продолжительность, указанная для SLEEP, всегда должна быть меньше, чем wait_timeout,interactive_timeout, чтобы избежать ошибок или предупреждений при выполнении.
- wait_timeout: это переменная, которая показывает, сколько секунд MySQL будет ждать, прежде чем убить любой незанятый процесс.
- 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 секунд для общего выполнения.