2010-11-26 3 views
33

my other question과 관련하여 오늘 MySQL's SLEEP(duration)을 올바르게 사용하는 방법에 대해 궁금합니다.MySQL에서 언제 어떻게 SLEEP()을 올바르게 사용할 수 있습니까?

SELECT ... 
SLEEP(1); /* wait for a second before another SELECT */ 
SELECT ... 

그래서 그 다음에 좋은 것입니다 : 내가 MySQL의 문서 도구에서 MySQL의 개발자 포럼 매우 모호한 설명을 읽는 것은 내가이 방법을 사용할 수 없습니다 수집 무엇부터

?

+6

mysql 문서를 읽는 것에 기반하여, 나는 먼저 그것을 시도해 보았을 것입니다. 매우 간단한 대답을 위해 아래 Konerak 덕분에 mysql 문서를 읽은 후에 유용한 정보를 얻지 못했습니다. – Landon

+0

@ Landon, Iroh의 답변이 더 좋습니다. – Pacerier

답변

48
SELECT ... 
SELECT SLEEP(5); 
SELECT ... 

하지만이 용도는 무엇입니까? mutexes 또는 트랜잭션을 우회/재발견하려고합니까?

+0

분명히 ... 건배! –

+22

이 명령을 사용하여 느린 쿼리 로깅이 제대로 작동하는지 확인합니다. – jeffatrackaid

+0

@jeffatrackaid 예! 나 혼자가 아니야 – rahmanisback

39

SELECT SLEEP(1);을 원하지 않는 경우 DO SLEEP(1);도 표시 할 수 있습니다. 출력을보고 싶지 않은 경우에 유용합니다.

SELECT ... 
DO SLEEP(5); 
SELECT ... 
+3

이 대답을 받아 들여야합니다. 'sleep'의 출력은 항상 0입니다. 왜 누구가'sleep '의 출력을 선택하는 데 어려움을 겪을까요? ..... – Pacerier

+0

@Pacerier :이 답은 5 년 후에 나왔지만 예제는 DO를 사용합니다. DO는 실제로 고르다. 커다란 단서는 수면 자체가 명령이 아니라 오히려 두 응답 모두를 보여주는 기능이지만,이 대답을 받아 들일 수 있다고 표시하는 것이 었습니다. – Konerak

+1

@Pacerier 절전 모드의 출력을 선택하는 한 가지 이유는이를 쿼리에 넣어서 동시 쿼리에서 잠금 및 트랜잭션 격리 수준을 테스트하는 것입니다. –

1

뮤텍스 (mutex) 등에 관해서는 많은 응용 프로그램이 있습니다. 때로는 스크립트가 서버가 조용하다는 것을 알고있는 날에 나중에 실행하기를 원합니다. 내가 들어갈 때까지 걸어 다니기보다는 잠()을 사용합니다.

+6

나중에 마음이 바뀌면 crontab을 중단 할 수 있습니다. – rahmanisback

+0

이것은 답변이 아니라 주석이어야합니다. – NieDzejkob

관련 문제