0

データをページ分割して検索するテーブルにjQueryスクリプトを使用しています。想定どおりに機能します。

1,000を超えるレコードで構成されるデータをテーブルに入力しており、現在、PHPのwhileステートメントを使用してデータを入力しています。

tableこのステートメントがあるコード内で、最初にクエリを実行してデータを取得します。$article = mysql_query("SELECT * FROM articles ORDER BY published DESC");

次に、whileステートメントを使用してデータを入力します- while($articles = mysql_fetch_array($article)) {

これは機能しますが、ページの読み込み時間は非常に短く、読み込みに長い時間がかかります。明らかに、これは人口を増やす最も効果的な方法ではありません。これを行うための「より簡単で効率的な方法」はありますか?

4

3 に答える 3

1

データ型を小さく変更して、ダウンロードを減らすことができます。

必要な特定のテーブルの代わりに*を選択することで、ダウンロードしている余分なデータがたくさんある可能性があります。

LIMIT xを使用して、取得する記事/結果の数を制限することもできます(おそらく、実際には1ページに1000は必要ありませんか?..)

それ以外は、PHPスクリプトの効率ではなく、データベースからのダウンロードに時間がかかるため、ロードに非常に時間がかかるため、高速化するためにできることはあまりありません。

于 2012-07-11T13:39:05.373 に答える
1

1ページに1000の記事すべてを表示していますか、それともjQueryを使用して一度に50のセットをページングしていますか?

後者を実行している場合、なぜ1000レコードすべてを取得するのですか?代わりに、SQLを次のように変更できます。

 $startRecord = N // set to some value, initially 0
 $numRecords = 50;

 $query = "SELECT * FROM articles ORDER BY published DESC limit $startRecord, $numRecords";
 $result = mysql_query($query);

これにより、最初の50レコードが取得されます。$ startRecord変数を変更して、データセットから他のレコードを取得します。

于 2012-07-11T13:45:25.090 に答える
0

(mysql)OFFSET +(php)PAGINATION +(mysql)OPTIMIZATION(インデックスキーなど...)

于 2012-07-11T13:44:04.170 に答える