MySQL SLEEP() 명령을 사용하는 올바른 방법

Habdul Hazeez 2023년1월30일
  1. MySQL에서 SLEEP() 명령 사용
  2. MySQL에서 DO SLEEP() 명령 사용
  3. MySQL SLEEPDO SLEEP의 차이점
  4. 쿼리 문에서 MySQL SLEEP()의 동작
MySQL SLEEP() 명령을 사용하는 올바른 방법

이 기사에서는 MySQL sleep 명령을 사용하는 방법을 보여주는 두 가지 방법을 설명합니다. 첫 번째는 SLEEP()을 사용하는 것이고 두 번째는 DO SLEEP()을 사용하는 것입니다.

또한 쿼리문에서 SLEEP()의 동작을 배우게 됩니다.

MySQL에서 SLEEP() 명령 사용

다음은 MySQL에서 SLEEP()을 사용하는 방법입니다.

SELECT SLEEP(10);

위의 SQL에서 MySQL SLEEP() 함수는 숫자 10을 매개변수로 사용합니다. 이 숫자는 SLEEP()이 서버 스레드에서 차지하는 시간(초)을 결정합니다.

SELECT SLEEP(10);을 사용하면 MySQL은 10초 동안 다른 작업을 수행할 수 없습니다. 스레드 스택을 사용하기 때문입니다.

다음은 이전 sleep 명령의 출력입니다.

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

MySQL에서 DO SLEEP() 명령 사용

DO SLEEP()SLEEP()과 동일하게 작동하지만 결과를 반환하지 않습니다. 다음은 작동 방식입니다.

DO SLEEP(10);

SLEEP()과 같이 이전 SQL을 실행할 때 10초 동안 기다렸다가 계속 진행합니다. 그러나 아래와 같이 빈 결과를 반환합니다.

Query OK, 0 rows affected (10.01 sec)

MySQL SLEEPDO SLEEP의 차이점

SLEEP()DO SLEEP()의 차이점은 SLEEP()은 결과를 반환하지만 DO SLEEP()은 결과를 반환하지 않는다는 것입니다.

쿼리 문에서 MySQL SLEEP()의 동작

쿼리문에 사용될 때 SLEEP()의 기간은 반환된 레코드에 따라 다릅니다. 테이블에 레코드가 없으면 MySQL은 절전 모드가 아닙니다.

그러나 테이블에 레코드가 있는 경우 절전 시간은 n * 테이블 레코드가 됩니다. 여기서 n은 절전 시간입니다.

이를 증명하려면 다음을 수행하십시오.

  1. MySQL에 데이터베이스를 생성하고 이 데이터베이스에 새 테이블을 생성합니다.
  2. 일부 레코드를 테이블에 삽입합니다.
  3. SELECT *, SLEEP (n) from <table_name>을 사용합니다. 여기서 n은 절전 시간이고 table_name은 테이블 이름입니다.

예를 들어 다음에서 users 테이블에는 세 개의 레코드가 있습니다. SQL 코드를 실행할 때 MySQL은 30초 동안 기다립니다.

number_of_records * sleep_time3 * 10입니다.

SELECT *, SLEEP(10) FROM users;

출력:

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