Mysql查询 - 多个查询 - 它们是同时运行(编辑:连续)还是同时运行

时间:2014-06-04 00:10:53

标签: php mysql cron

我有一个执行php页面的cron作业。 php页面只有几行,可以运行3个不同的查询。

重点是清除克隆表,使用主表中的所有新内容更新它,然后对该克隆表进行更新。

php页面基本上是这样的:

<?php
require_once('/path/to/my/db/connection/file'); 
@session_start();
mysql_select_db($database_db, $db);

$query1 = "DELETE from table2;"
$query1_run = mysql_query($query1);

$query2 = "INSERT INTO table2 (SELECT * FROM table1);"
$query2_run = mysql_query($query2);

$query3 = "UPDATE table2 (blah blah a bunch of update syntax here)"
$query3_run = mysql_query($query3);

?>

我们正在处理一个包含数百万行的非常大的数据库,因此每个查询都需要一些时间。

第一个查询运行得很快,但第二个和第三个查询需要一分钟,每个查询大约需要3分钟。

这是我的问题:我可以在一个页面上一起运行所有这些东西吗?在继续第二个查询之前是否会等待第一个执行,然后再到第三个查询?或者我是否需要将这些分解为3个cron作业并将它们分开运行几分钟?

提前致谢。

1 个答案:

答案 0 :(得分:0)

要回答标题中的问题&#34;它们同时或同时运行&#34;答案是同时的。

拥有多个crons会要求他们知道某个过程是否完整。这可能会变得混乱。将此文件放在一个文件中即可。您可能希望设置最长执行时间以确保脚本不会超时。找到你的php.ini文件并查找: max_execution_time = xxx(秒)

如果需要,

将其更改为更高的值。 max_execution_time = 240是4分钟

只有在所有进程完成后,您还可以查看mysql事务以提交更改。

http://dev.mysql.com/doc/refman/5.0/en/commit.html