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 SLEEP과 DO SLEEP의 차이점
SLEEP()과 DO SLEEP()의 차이점은 SLEEP()은 결과를 반환하지만 DO SLEEP()은 결과를 반환하지 않는다는 것입니다.
쿼리 문에서 MySQL SLEEP()의 동작
쿼리문에 사용될 때 SLEEP()의 기간은 반환된 레코드에 따라 다릅니다. 테이블에 레코드가 없으면 MySQL은 절전 모드가 아닙니다.
그러나 테이블에 레코드가 있는 경우 절전 시간은 n * 테이블 레코드가 됩니다. 여기서 n은 절전 시간입니다.
이를 증명하려면 다음을 수행하십시오.
- MySQL에 데이터베이스를 생성하고 이 데이터베이스에 새 테이블을 생성합니다.
- 일부 레코드를 테이블에 삽입합니다.
SELECT *, SLEEP (n) from <table_name>을 사용합니다. 여기서n은 절전 시간이고table_name은 테이블 이름입니다.
예를 들어 다음에서 users 테이블에는 세 개의 레코드가 있습니다. SQL 코드를 실행할 때 MySQL은 30초 동안 기다립니다.
number_of_records * sleep_time은 3 * 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 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