有没有办法从查询中加载结果需要超过一分钟才能返回结果?
让我详细说明一下情况。我有一个非常复杂的SQL查询。由于涉及的规范化程度,它在5个不同的表上具有多个连接。
所以我的查询返回大约6k条记录,但是获取这些记录需要花费一分多钟。
在用户必须等待超过一分钟才能加载页面的网站上,这看起来不太好。那么有什么方法可以在查询执行时实时传递结果?而不是等待整个查询完成。我希望每个人都明白我想在这里提出的观点......
答案 0 :(得分:2)
虽然您没有指定您正在使用的DBMS或网络平台,但一般情况下,如果您在查询中使用ORDER BY,则无法进行此操作,因为这将需要整个结果集按顺序排列工作。
听起来您应该专注于优化查询,或者将结果缓存,以便每次加载页面时都不需要运行它。
答案 1 :(得分:0)
我认为更好的选择是创建一个"视图表",然后只返回视图的结果。我认为,此选项会减少查询的时间。
答案 2 :(得分:0)
我不了解你的系统,但我会尝试给你一些建议。
如果可能,您可以加载没有记录的页面,并使用ajax加载它们并动态插入行。
其他可能性是将此查询作为后端的第一步,但是异步,并在最后一步获得结果。它可能会减少这个时间,因为查询将与其他步骤并行执行。
显然你应该尝试过优化查询并应用一些缓存方法,正如@richard所说。
答案 3 :(得分:0)
使用分页,在sql中我们有Limit和offset看看你是否可以使用它们参考这个link例如