我有一个相当大的表,需要大约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代替或消除联接号,尝试简单的简单查询。

07-24 16:25