2012-04-09 9 views
0

私はhttp://datatables.net/examples/を使用しています。私は、MySQLテーブルから30,000以上のレコードを持つテーブルを生成しています。ローディングは非常に遅いです。私はこのテーブルをキャッシュし、すべてがより速く進むと思っています。 ob_get_contents()を使用しましたが、キャッシュファイルのサイズは26MBでした。すべてを高速化するためにキャッシュファイルを作成するにはどうすればよいですか?phpでキャッシュファイルを生成しますか?

+4

これは間違った方法です。要求に応じて必要なものだけをロードする必要があります。一度に30k行のデータを持つ理由はありません。 http://datatables.net/release-datatables/examples/data_sources/ajax.html – MetalFrog

+2

@ MetalFrogは言っているように、1ページの30k行は気違いです。私は何らかの形式のページネーションやフィルタリングを考えています。 – BenOfTheNorth

+0

また、30k行を取得するためのクエリが実際にどのくらい時間がかかるかを試してみてください。私の推測では、JavaScriptの処理とhtmlレンダリングは実際には時間がかかります。 – kontur

答えて

0

出力バッファーのサイズが26MBの場合、サーバーが生成した後にブラウザーがページをダウンロードするのに時間がかかるという問題があります。返される行の数を制限するか、改ページシステムを使用するかのいずれかを選択します。

はページネーションのために、私はこのような何かをしたい:

のようなURLがいる:http://website.com/script.php?start=3000

をして、あなたはその後、プリントアウトしたいと思います

$start = mysql_real_escape_string($_GET['start']); 
$sql = "SELECT * FROM table LIMIT $start, 100"; 

ような何かを行います次のページにリンクするページのURL:

$nextpage = $start + 100; 
echo "<a href='/script.php?start=$nextpage'>Next Page</a>"; 
関連する問題