如何在运行时传递慢速sql查询的结果

如何在运行时传递慢速sql查询的结果,sql,dynamic,Sql,Dynamic,是否有任何方法可以从需要一分钟以上才能返回结果的查询中加载结果 让我详细说明一下情况。我有一个非常复杂的SQL查询。由于所涉及的规范化级别,它在5个不同的表上有多个不同的连接 因此,我的查询返回大约6k条记录,但是获取这些记录需要一分钟以上的时间 在一个用户需要等待超过一分钟才能加载页面的网站上,这看起来并不好。那么,在执行查询时,是否有任何方法可以实时传递结果?而不是等待整个查询完成。我希望每个人都理解我在这里要表达的观点…我认为更好的选择是创建一个“视图表”,然后只返回视图的结果。我认为,这

是否有任何方法可以从需要一分钟以上才能返回结果的查询中加载结果

让我详细说明一下情况。我有一个非常复杂的SQL查询。由于所涉及的规范化级别,它在5个不同的表上有多个不同的连接

因此,我的查询返回大约6k条记录,但是获取这些记录需要一分钟以上的时间


在一个用户需要等待超过一分钟才能加载页面的网站上,这看起来并不好。那么,在执行查询时,是否有任何方法可以实时传递结果?而不是等待整个查询完成。我希望每个人都理解我在这里要表达的观点…

我认为更好的选择是创建一个“视图表”,然后只返回视图的结果。我认为,这个选项减少了查询的时间

虽然您尚未指定正在使用的DBMS或web平台,但通常情况下,如果在查询中使用ORDER BY,这将不可能实现,因为这将需要整个结果集才能工作


听起来你应该专注于优化你的查询,或者缓存结果,这样你就不需要每次加载页面时都运行它。

我不知道你的系统,但我会尝试给你一些建议

如果可能,您可以加载没有记录的页面,并使用ajax加载它们并动态插入行

另一种可能是在后端第一步执行此查询,但不同步,并在最后一步获得结果。这可能会减少这一时间,因为查询将与其他步骤并行执行


显然,您也应该尝试优化查询并应用一些缓存方法,正如@richard所说。

使用分页,在sql中我们有Limit和offset,看看是否可以使用它们。例如