フォーラムセクションからすべてのスレッドをフェッチしていくつかの条件を満たすかどうかを確認するPHP Cronスクリプトを作成しています(2年以上経過している場合など) 。Cronスクリプトを使用して多数のMySQL行を処理する方法
通常、私はどうなる:
SELECT DATE_CREATED FROM `threads`
WHERE BOARD = board_id
AND (YEAR(NOW()) - YEAR(DATE_CREATED)) >= 2
して、ループをそれに応じて。
ここでは、この基準を満たすスレッドが1,000,000以上ある可能性があります。
は当初、私はcronスクリプト
は、今私は返される行が本当に大きくなると、いくつかのメモリの問題があるかもしれないことを考え出していますので、行が返さを制限する必要がないだろうと思いました。
これは、Cronジョブによって実行されるPHPスクリプトで何千ものMySQLレコードを効果的にループする方法についてのヘルプが必要なところです。
私はLIMITを使用し、それをページ区切りのコンテンツとして反復することを考えましたが、それを行うためのより効果的な方法があるかどうかを知りたいと思います。うまくいけば、MySQLサーバ上でのみ。
ありがとうございます。
あなたはリターンが各反復のために小さくなるように、制限してループする必要があります。パーツでやって! – GrumpyCrouton
リミットとオフセットを使用して、結果の一部をループすることができます。それ以外の場合は、where句を分割してクエリを繰り返さないようにしましょう。 – sissy
ありがとうございます。 @Sissyはどうすればいいのか教えてください。 – Euroadams