- ベストアンサー
数字がリアルタイムで参照できるようなPHPを作りたいのですが
下記のように求人の数がリアルタイムで参照できるようなPHPを作りたいのですが 例 フード 系 (2537件) http://www.baitoru.com/ http://career.livedoor.com/a/index.php 下記のページなんかは、表示が遅いのです。なぜなんでしょうか。 http://aga.z1.bbzone.net/pca/search_a.php どうすれば、件数を常に表示させながら、速く表示させることができるのでしょうか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
多分データベース使ってるでしょうから sql 使って SELECT count(*) FROM ... とかで求めてると思います。
その他の回答 (4)
- Bonjin
- ベストアンサー率43% (418/971)
>どうすれば、件数を常に表示させながら、速く表示させることができるのでしょうか。 件数をアクセス毎にデータベースから取得するのではなく、メモリ上にキャッシュさせておきます。そうすることで、データベースへのアクセスがなくなるので速くなります。 件数の更新は定期的に行うか、件数が変わるようなタイミング(データが更新されるなど)で行うようにすれば良いでしょう。 サイトの運用や更新頻度などを考えてその辺りを考えると良いでしょう。
お礼
ありがとうございました。
- moon_night
- ベストアンサー率32% (598/1831)
どのような処理をしているのかが分かりませんので、 なぜ表示が遅いのかと言うのには答えられません。 ループで回しているのでしたら、コーディングを見直しましょう。 それでも駄目ならば手を変えて、 予め各項目の数を別ファイルで記録して、それを読み出すようにすると言うように変更すれば早くなります。 (内容が更新されたら数のファイルも更新されるようにする)
お礼
ありがとうございました。
- wakame0729
- ベストアンサー率32% (245/765)
No1です。先の回答だとあまりに不親切ですね(^^;。 カテゴリテーブルとデータのテーブルが別になってるという前提で書きます。 カテゴリがあまりに多い場合は確かに重い処理になってしまう事があるので、そんな場合はカテゴリのデータを取得する前にデータテーブルからgroup byなどを使って、カテゴリ別のレコード数を一度に取得してしまって、カテゴリIDをキーとした配列にレコード数を一度入れてしまいます。その後にカテゴリデータを取得してループしながら数と一緒に表示します。この方法なら多少カテゴリが増えてもそれほど重くなる事はありません。 ただ、動作が重くなるというのには色々な原因が考えられますので、一つ一つ確認しながらボトルネックを探すという作業が必要になります。出来上がったページだけを見て、重い原因を探るというのは困難です。
お礼
ありがとうございました。
- wakame0729
- ベストアンサー率32% (245/765)
質問の意図を確認しますが、「リアルタイム」というのはブラウザを放っておいても自動的に数値が更新される事を言っているのではなく、リクエストした時点での数値が表示されればそれで良いわけですよね? 方法は色々ありますが、単純に言えばカテゴリーをループしながら表示させる時に、一緒にそのカテゴリ内のレコード数をカウントして表示すれば良いだけです。 具体的な方法は、どのようにデータを持っているかにもよるので、これだけの質問では答えづらいですね。 表示が遅いページは、サーバーが重い、コーディングが不適切、回線が重いなどの原因が考えられます。
お礼
ありがとうございました。
お礼
ありがとうございました。