用php生成缓存文件?

问题描述:

我使用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 2012-04-09 11:49:38

+2

正如@MetalFrog所说,一页上的30k行将是疯狂的。我会考虑某种形式的分页或过滤。 – BenOfTheNorth 2012-04-09 11:51:32

+0

另请尝试查看检索30k行的查询实际需要多长时间。我的猜测是JavaScript处理和html渲染实际上需要时间。 – kontur 2012-04-09 12:17:01

如果输出缓冲区大小为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>";