我们怎样才能在后台运行sql查询

时间:2012-07-11 12:34:38

标签: php mysql sql

我想知道如何在后台运行sql查询...我有一个很大的查询,花了这么多时间我想把它作为背景运行,这样我的页面加载时间会少一些..

5 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

您可以使用AJAX在单独的脚本中调用您的查询。当请求页面时,正常处理PHP,渲染并将页面发送给访问者,并立即启动AJAX脚本,请求执行慢速查询的另一个PHP脚本。查询运行时将加载页面,当您从查询中获得结果时,请使用一些JavaScript来合并结果。这里的好处是,当页面加载时,查询正在运行,因此您同时执行这两项操作。

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

答案 2 :(得分:2)

此处的一些解决方案http://dev.mysql.com/doc/refman/5.0/en/table-locking.html和此处http://dev.mysql.com/doc/refman/5.5/en/insert.html

官方mySQL网站说:

INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [INTO] tbl_name [(col_name,...)]
{VALUES | VALUE} ({expr | DEFAULT},...),(...),...

所以一个真实的用例看起来像

INSERT LOW_PRIORITY INTO tablename (column1,column2) VALUES ("hello","you");

答案 3 :(得分:2)

我建议使用CRON和Cache方法,或者实现AJAX的使用。

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

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

答案 4 :(得分:0)

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

触发它