私は奇妙な問題があります。私はPHPの非常に大きなテーブルに対してMySQLクエリを実行しています。クエリ時間は1分以上ですが、それは私の問題ではありません。 PHPが66秒ごとにクエリを再送信しているようです。MySQLクエリは60秒ごとに再起動しますか?
show processlist;
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| 150018 | root | localhost | amrs | Query | 32 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
数分後、私は再びチェック:
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+---------+-------------------+----------+---------+------+---------------+--------------------------------------------------------
| 150018 | root | localhost | amrs | Query | 188 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
| 150021 | root | localhost | amrs | Query | 122 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
| 150023 | root | localhost | amrs | Query | 56 | Sending data | /*DEREK*/select ctlno, count(*) AS count from (omitted)
を私はページまたは何かを再読み込みしていません。 set_time_limit(0)は、スクリプトの先頭近くで呼び出されます。迷惑な部分は、ページが最近実行されたものにリンクされているようです。だから私が150018を殺すと何も悪いことは起こりませんが、別のものが産み出される前に150023を殺すと、そのページには「クエリ実行中断」というエラーが発生します。 150018は最終的には単独で実行を終了しますが、スクリプト/ページはそれを受信しないため、何もしません。
誰もが考えている?
EDIT:フルPROCESSLISTは(簡潔さと機密保持のために取り外さいくつかの線で)以下を与える示しています
+--------+---------+-------------------+----------+---------+-------+--------------+-----------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+---------+-------------------+----------+---------+-------+--------------+-----------------------------------------------------
| 147385 | root | localhost:44560 | amrs | Sleep | 14021 | | NULL
| 150248 | root | localhost | NULL | Query | 0 | NULL | show full processlist
| 150251 | root | localhost | amrs | Query | 1 | statistics | /*DEREK*/select ctlno, count(*) AS count from (snip)
+--------+---------+-------------------+----------+---------+-------+--------------+-----------------------------------------------------
あなたは私たちを見ることができますこのコマンドの結果: 'show full proceslist;'はクエリを実行した直後ですか? (開いている2つの接続、#1 =あなたのクエリ、#2 =このクエリ) –
それは私が期待するように見えます。私は上記のように、他のクエリに関連するいくつかの行を省略しましたが、私は上にそれを付け加えました。 – Derek
テーブル構造を表示できますか? where節はありませんか? –