• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:cronを使った最適な処理[PHP])

cronを使った最適な処理[PHP]

このQ&Aのポイント
  • cronを使用して指定した検索ワードの検索結果をテキストとして抽出し、mysqlに保存する処理を実現したい。
  • 既にmysqlに保存されている検索ワードを使用して、50000回のループ処理を行うことは好ましくないので、より効率的な方法を考えたい。
  • cronを利用し、指定した検索ワードを引数として取り、ループ処理をせずに一度に検索結果を取得し、テキストとしてmysqlに保存する方法を検討したい。

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>指定する検索ワードは既にmysqlに入っており ・テーブル定義に「前回検索日時」の列を追加する ・検索して処理が終わったら、前回検索日時を更新する として、 ・前回更新日時が古いデータから(ORDER BY で指定)最大 N 件を処理して終了する(LIMIT で指定) ことになるかと。 N 件がどのくらいが最適かは、更新したい頻度とサーバ負荷を勘案して決めることになります。cronでの起動間隔とも絡みますよね。

04106972
質問者

お礼

ご回答ありがとうございます。 上記、検索日時追加で問題なく実装できました。 また、limit 30で更新頻度を1時間毎にしようとおもっているのですが、 これくらいでしたら問題なさそうでしょうか? ご回答いただきました後に、No.1をベストアンサーとさせていただきます。 以上、宜しくお願いします。

その他の回答 (1)

  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

>また、limit 30で更新頻度を1時間毎 件数としてはじゅうぶん許容範囲だとは思いますが、50000件だと2ヶ月以上かかります。その更新頻度でいいのかどうかの判断は私には出来ません。 cronでの実装前にphpスクリプトとして何件の処理でどのくらいの実行時間になるか試すことをお勧めします(開始と終了の時刻差を表示させればいいですよね)。30件でどのくらい、100件でどのくらいといった数値がないと(質問者さんが判断するのに)判断材料がないと思います。

04106972
質問者

お礼

そうですよね。 諸々ためさせていただきます。 お約束通り、No1をベストアンサーとさせていただきます。