2012-07-11 52 views
5

我想知道我们如何在后台运行sql查询...我有一个很大的查询需要这么多时间我想运行这个作为背景,以便我的页面加载时间会更少..我们如何才能在后台运行sql查询

+0

检查http://stackoverflow.com/questions/60878/priority-of-a-query-in-ms-sql – Sliq 2012-07-11 12:37:03

回答

3

使用cron在PHP脚本中运行查询并缓存结果。

2

我建议cron和缓存的方法,或实施使用Ajax。

使用CRON和Cache,运行您的查询,然后对其进行序列化并将其保存到文件以保持完整。需要时调用并反序列化。

使用AJAX,当你的页面加载时,调用一个执行并返回查询的文件。这样,您可以在服务器运行查询时显示等待指示符,并且它们彼此分开。

3

你可以用AJAX在不同的脚本中调用你的查询。当页面被请求时,正常处理PHP,呈现并发送页面给访问者,然后立即启动一个AJAX脚本,请求另一个执行慢查询的PHP脚本。页面将在查询运行时加载,并且当您从查询中获得结果时,请使用一些JavaScript来结合结果。这里的好处是,当页面加载时查询正在运行,所以你一次做两个。

另请参见优化您的查询并确保您已在表上设置索引以加快查询速度。

+0

thanks..I触发它我也是这样想的... – 2012-07-11 13:00:40

+0

这不会是你总是想要执行的查询的解决方案。如果用户禁用JavaScript或使用不支持JavaScript的浏览器会发生什么? – nonybrighto 2016-08-08 20:07:49

+0

不,这是缓慢运行“背景”请求的解决方案。如果您想立即完成,请点击不同的端点。我们正在谈论两件不同的事情。至于JavaScript被禁用,您可能不得不通知用户他们由于他们的选择而失去了功能。具有一些复杂性的Web应用程序(例如在用户执行其他操作时在服务器上运行查询)要么具有JavaScript,要么需要用户刷新并查看查询是否完成。使JavaScript成为获得全部功能的要求没有任何问题。 – 2016-08-09 19:53:11

0

将查询写入您的PHP文件,并在需要运行时按时间或时间间隔进行排定。对于Linux的时间表CRON或Windows使用Task Scheduler否则,您可以通过Ajax要求