我有一个相当大的表,需要大约10-20秒才能完成fetch
的查询。由于这个原因,这使得网站似乎变慢了。
我在考虑使用LIMIT
限制结果数,并使用ajax
一点一点地显示整个表。
现在,我正在使用ajax一次显示整个表。
我正在考虑做这样的事情...
后端:
$offset = 0;
$rowsToFetch = 100;
{
//Loop
$query = "SELECT * FROM TABLE_NAME LIMIT $offset, $rowsToFetch"
$offset = +100;
$rowsToFetch = +100;
}
前端:
Call ajax function that will call the back end part recursively and display part by part until finished.
我敢肯定,这要复杂得多。
有一个更好的方法吗?任何想法如何开始?要注意的陷阱?
附言我不想使用分页。我想将所有内容显示在一页中(优点:CTRL + F)
编辑:在
database(command line)
中提取大约需要5-7秒。但是在网站上显示记录大约需要10到20秒。查询大约需要4-5秒。我定时在页面的各个部分进行标识。 最佳答案
这不会提高查询本身的速度,因为mysql要做的第一件事就是实现整个查询,然后它只获取所需数量的结果。考虑使用nidexes代替或消除联接号,尝试简单的简单查询。