优化结果页面首先查询结果数

时间:2017-05-10 10:26:32

标签: javascript mysql angularjs node.js express

这是我的代码。但是我有一些关于加载时间超过1000行的问题。

如何更改代码以首先检查创建分页的查询结果的数量。那么,只得到分页页面的结果吗?

$query->join('f.document', 'dv');

2 个答案:

答案 0 :(得分:2)

首先获得结果的总行数

SELECT COUNT(*)FROM table WHERE 1 = 1;

第二个是获取行结果但由ex限制的查询。 10,偏移量从零开始

SELECT * FROM table WHERE 1 = 1 LIMIT 10,0; ​​

这意味着结果将从0开始,然后对于下一页,您应该为您的偏移量添加10

SELECT * FROM table WHERE 1 = 1 LIMIT 10,10;

所以它从10开始到20

答案 1 :(得分:0)

实际上是两个方面:客户端和服务器端。

客户端,使用angularjs,请评估使用angular ui pagination指令:

https://github.com/angular-ui/bootstrap/tree/master/src/pagination

这里有一个指向stackoverflow帖子的链接,其中有一个工作示例:

How to do paging in AngularJS?

关于服务器端,您可以提供一种使查询动态化的方法,只检索传递给它的范围内的结果。就这样:

'SELECT query_text FROM catalogsearch_query WHERE query_text LIKE "%' + n + '%" ORDER BY popularity DESC LIMIT %, %'

根据分页从客户端传递限制参数。 因此,在加载新页面之前,使用正确的LIMIT参数调用查询