1

約100項目のページ付けシステムを行っています。私の質問は:

100個すべてをロードしてから、jQueryを使用してリロードせずにページを切り替える必要がありますか?または、「LIMIT 5」でMySQLクエリを使用する必要があります。その後、ユーザーが次のページまたは前のページを押すたびに、LIMIT 5で別のMysqlクエリが開始されますか?

すべてのアイテムについて、サムネイル画像をロードする必要がありますが、サーバーの帯域幅を使用しないように、サムネイル画像をキャッシュに保持することができます。

サーバーリソースの観点から最適なオプションはどれですか?

前もって感謝します。よろしく

4

4 に答える 4

3

コマンドラインインターフェイスを介してMySqlインスタンスに直接接続してみてください。一度に100を使用してクエリを実行し、次に。を使用してクエリを実行しますLIMIT 5。msecの結果を見てください。これにより、どちらがより効率的であるか、リソースをあまり必要としないかがわかります。

MySqlから一度に100レコード(データセットによって異なります)は実際には何もありません。適切に記述されたクエリ/データベーススキーマでは、パフォーマンスの低下は目立ちません。

そうは言っても、私は一度に必要な結果だけを呼び出すことに投票します。LIMIT句とjqueryページネーションメソッドを使用して効率的にします。

于 2012-04-17T02:20:03.497 に答える
3

サーバーの場合、最も効率的な方法は、100個のアイテムすべてを一度取得し、それらをクライアントに1回送信して、クライアントページにローカルで表示させることです。これはおそらく高価なクエリの1つですが、追加の5つのアイテムごとにクライアントを行き来させるよりも全体的に安価です。

そうは言っても、それが実現可能かどうかは別のトピックです。ページの読み込みとクライアント側の処理が遅くなるため、一度に大量のデータをクライアントにプッシュすることは望ましくありません。実際、通常、クライアントが消費する帯域幅を最小限に抑えることが望ましいです。そのPOVから、必要な場合にのみ、一度に5つの結果を持つ小さなAJAXリクエストを作成することが非常に望ましいです。100の結果でさえ全体的に非常に小さく、大きな違いがない場合を除きます。

どちらがあなたに最適か、あなたは理解する必要があります。

于 2012-04-17T02:21:58.593 に答える
2

クエリに大きく依存します。適切に設計されたテーブル(インデックスセットなど)からの単純なSELECTである場合、非常に電力が不足しているサーバーで実行している場合は、100行と5行の要求に目立った違いはありません。複雑なクエリの場合は、クエリの数を制限する必要があります。

考慮すべきその他の考慮事項は、クライアントがデータを受信するためのサーバーへの実際のラウンドトリップ時間のように、ページのロードにかかる時間です。私はあなたがアメリカかヨーロッパにいると大げさに推測します。そこではインターネットの速度が速くて素晴らしいです、全世界がそれほど幸運であるというわけではありません。サイトがサーバーにデータを要求する回数を制限することは、サーバーの負荷よりもはるかに優れたメトリックです。

これはここで急速にUXに移行していますが、ユーザーはサーバーの負荷を気にしません。この方法で負荷の平均が0.02ではなく0.01になるかどうかは気にしません。サイトのセクション間でほぼ瞬時に遷移するかどうかは、彼らが気にします。

個人的には、「すべてのデータをロードしてからローカルでページングする」方法を使用します。また、Ajaxはあなたの友達であることを忘れないでください。必要な場合は、結果ページを読み込んでから、データをリクエストしてください。リクエストは、最初のページと残りのページの2つに分割できます。あなたのサイトを信じられないほど速く見せるためにあなたがすることができる舞台裏の微調整がたくさんあります、そしてそれは人々が気づくものです。

于 2012-04-17T02:27:12.027 に答える
1

一度に5つロードして、ページ分割します。私の考慮事項:

  1. 一度に5をロードする方が実際にはるかに軽量です
  2. すべてのユーザーが100個すべてをナビゲートするわけではないため、ロードされたユーザーは使用されない可能性があります
  3. 5つのレコード間のわずかなロード時間は予想されるものです(つまり、ほとんどのユーザーは500ミリ秒-1秒待たなければならないという理由だけで文句を言うことはありません)

また、ページごとにx個のアイテムを表示するオプションをユーザーに提供したり、allユーザーがページ内のすべてのアイテムを表示できるようにするオプションを設定したりすることもできます。時間の経過とともに、ページごとに表示するアイテムのx数に関して、ほとんどのユーザーの好みを監視し、デフォルトのアイテムを使用することもできます。LIMIT

于 2012-04-17T02:18:38.487 に答える