我有一个大型 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
...
我需要加载所有数据以进行一些复杂的计算:产量、总计、按公司...
然后我需要在表格中显示所有数据,但我想像无限滚动、分页或 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
什么是最好的方法?
最佳答案
不要害怕使用多个查询。我觉得您想一次完成所有这些,不要。您可能会在这种情况下使用它,但很难维护。是的,您应该尽量减少查询,但不要过度优化。
首先你计算你的平均值和总数并立即返回,这将给出你的第一个统计数据。然后你会显示前 X 个项目,我建议你也不要使用 AJAX,而是在构建该页面时这样做。这是另一个查询。之后,您可以在 AJAX 调用中自由使用您的 LIMIT 来显示您的下一个/上一个。
通过拆分查询,您可以根据需要优化 AVG/SUM 查询,并优化普通行查询。这甚至可能会改善您当前的表现。
关于javascript - 大型 sql 表 - 选择所有但使用 javascript/PHP 逐步显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38718502/