0
我使用http://datatables.net/examples/來簡化控制表。我從MySQL表中生成超過30,000條記錄的表,並且加載非常緩慢。我想緩存這張表,並認爲一切都會更快。我用ob_get_contents()
,但緩存文件大小爲26MB。我怎樣才能創建緩存文件,使一切都變得更快?用php生成緩存文件?
我使用http://datatables.net/examples/來簡化控制表。我從MySQL表中生成超過30,000條記錄的表,並且加載非常緩慢。我想緩存這張表,並認爲一切都會更快。我用ob_get_contents()
,但緩存文件大小爲26MB。我怎樣才能創建緩存文件,使一切都變得更快?用php生成緩存文件?
如果輸出緩衝區大小爲26MB,那麼問題在於,瀏覽器在服務器生成頁面後需要很長時間才能下載頁面。您應該限制返回的行數,或者使用分頁系統。
對於分頁,我會做這樣的事情:
有一個像網址:http://website.com/script.php?start=3000
,然後像做
$start = mysql_real_escape_string($_GET['start']);
$sql = "SELECT * FROM table LIMIT $start, 100";
你會再想要打印出鏈接到下一頁的網頁上的網址:
$nextpage = $start + 100;
echo "<a href='/script.php?start=$nextpage'>Next Page</a>";
你正在以這種錯誤的方式行事。你應該只需要加載你需要的東西。沒有理由一次有30k行數據。 http://datatables.net/release-datatables/examples/data_sources/ajax.html – MetalFrog 2012-04-09 11:49:38
正如@MetalFrog所說,一頁上的30k行將是瘋狂的。我會考慮某種形式的分頁或過濾。 – BenOfTheNorth 2012-04-09 11:51:32
另請嘗試查看檢索30k行的查詢實際需要多長時間。我的猜測是JavaScript處理和html渲染實際上需要時間。 – kontur 2012-04-09 12:17:01