2010-11-26 15 views
33

今日はmy other questionとの関係で、MySQL's SLEEP(duration)を正しく使用する方法が不思議です。MySQLでどのようにSLEEP()を正しく使用するのですか?

私はそれをこのように使用することはできませんMySQLのドキュメントでのMySQLのDevフォーラムと非常にあいまいな説明を読み集まっ何から:

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

だから、その後のために良い何ですか?

+6

mysqlドキュメントを読むことに基づいて、私はあなたの方法を最初に試してみましたが、私は非常に単純な答えの下にKonerakのおかげで、mysqlのドキュメントを読んだ後に有益な情報を忘れてしまったようです.... – Landon

+0

@ Landon、Irohの答えが優れています。 – Pacerier

答えて

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

これは何のために使用していますか?ミューテックスやトランザクションを回避/再開発しようとしていますか?

+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を使用しています。 SELECT。大切な手掛かりは、SLEEP自体がコマンドではなく、むしろ両方の答えが表示されているが、この回答を受け入れられたと感じることができる機能であることを示していました。 – Konerak

+1

@Pacerierスリープの出力を選択する1つの理由は、たとえば、同時クエリのロックおよびトランザクション分離レベルをテストするためにクエリに入れることです。 –

1

ミューテックスなどについては、多数のアプリケーションがあります。時には、サーバが静かであることがわかっている日の後半にスクリプトを実行したいこともあります。私が入ることができるまでぶら下がるのではなく、sleep()を使う。

+6

後で気が変わったらcrontabを中止することができます。 – rahmanisback

+0

これはコメントであり、答えではありません。 – NieDzejkob

関連する問題