2016-11-20 6 views
1

2100行を含むテーブルからjsonデータを返すphpでサービスを作成しています。私は、dev内、以下の設定を使用しています:ApacheとMySQLの PHP大きなリクエストを取得できません

  • Windowsとの

    • XAMPP 10
    • PHP-7.0.8クエリを実行するためにPHPのPDOで

    サービスは、小さなリクエスト(30行)とテーブル全体に対して完全に機能していました。私はかなり頻繁にそれを呼んでいたが問題はなかった。最近、テーブル全体を返す要求に対しては機能しなくなり、小さな要求に対してのみ機能します。

    私はApacheのエラーログをチェックして、次の得た:

    [日11月20日11:06:06.687051 2016] [mpm_winntで:予告] [PID 4576:TID 536] AH00428:親:子プロセス11908は終了しましたがステータス1 - 再起動中。

    [日11月20日11:06:06.889267 2016] [mpm_winntで:予告] [PID 4576:TID 536] AH00418:親:作成された子プロセス924

    [日11月20日11:06:07.415857 2016] [ssl:warn] [pid 924:tid 436] AH01909:www.example.com:443:0サーバー証明書にサーバー名と一致するIDが含まれていません

    [Sun Nov 20 11:06:07.442378 2016] [mpm_winnt:notice] [pid 924:tid 436] AH00354:子:150ワーカースレッドを開始しています。

    効果的に検索するために問題が何であるか分かりませんが、私は解決策を探しました。上記の各エラーメッセージは、私が持っている問題に関連しない回答を私に与えるように見えます(ただし、問題の内容は完全にはわかりません)。

    なぜこのようなことが起こるのでしょうか?

  • 答えて

    1

    私の推測では、メモリの制限があります(子供はサーバーによって殺されています)。それを増やすことはできますが、問題を解決することはできません.1百万のレコードがあるとどうなりますか?

    私のアドバイスは、あなたが返すようにページネーションのparamsとレコードの最大数を実装することです:

    http://website.com/api/v1/getUsers?position=0 
    http://website.com/api/v1/getUsers?position=100 
    http://website.com/api/v1/getUsers?position=200 
    etc.. 
    

    これは大幅にあなたのシステムにストレスを下げ、また、イベントで彼らのスループットを下げるために、ユーザーが有効になります彼らは唯一の希望上位xレコード、最後の2、など。

    あなたはまだすべてのサービスを提供できるようにしたい場合は、Apache用のメモリを増やす方法については、このスレッドをチェックアウトすることができます:https://stackoverflow.com/a/36920556/1935500

    +0

    ああそうですか。代わりにページ設定を設定します。ありがとうございました –

    関連する問題