大sql表 - 选择所有,但显示与javascript / PHP逐步显示

时间:2016-08-02 10:55:46

标签: javascript php jquery mysql ajax

我有一个大型SQL表,其中包含以下用户历史数据:

ID    Name     Units     Company      Benefit  Date
1     John     1.5       Example A    300$     1/1/2016
2     Paul     2.12      Example B    600$     1/2/2016
3     Mike     3.21      Example A    250$     1/3/2016 
...

我需要加载所有数据以进行一些复杂的计算:yield,total,by company ...

然后我需要在表中显示所有数据,但我想逐渐像无限滚动,分页或Ajax加载。但我无法制作SQL LIMIT,因为需要先加载所有数据。

解决方案将进行2次查询:一次包含所有数据,然后一次使用LIMIT

我最终需要的页面是这样的:

**Hi John,**

Your total benefit is: 2043$
Your total yield is: 2%
Your total units by day: 1.25
...

**Historical data**

1/1/2016 - Example A - 1.5 units - 100$ benefit
2/1/2016 - Example B - 2.5 units - 200$ benefit
3/1/2016 - Example A - 3.5 units - 30$ benefit
4/1/2016 - Example C - 1.25 units - 500$ benefit
5/1/2016 - Example A - 1.5 units - 3$ benefit
6/1/2016 - Example A - 2.5 units - 5.4$ benefit

PREV PAGE - NEXT PAGE

最好的方法是什么?

1 个答案:

答案 0 :(得分:4)

不要害怕使用多个查询。我觉得你想要一次性做到这一点,不要。你可能会在这种情况下使用它,但它很难维护。是的,您应该尽量减少查询,但不要过度优化。

首先,您计算平均值和总数并立即返回,这将提供您的第一个统计信息。然后你显示了第一个X项目,我建议你不要使用AJAX,但是在构建那个页面时这样做。这是另一个查询。之后,您可以在AJAX通话中自由使用您的LIMIT来显示您的下一个/上一个。

通过拆分查询,您可以根据需要优化AVG / SUM查询,并优化普通线查询。这甚至可能会改善您目前的表现。