我有一个执行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作业并将它们分开运行几分钟?
提前致谢。
答案 0 :(得分:0)
要回答标题中的问题&#34;它们同时或同时运行&#34;答案是同时的。
拥有多个crons会要求他们知道某个过程是否完整。这可能会变得混乱。将此文件放在一个文件中即可。您可能希望设置最长执行时间以确保脚本不会超时。找到你的php.ini文件并查找: max_execution_time = xxx(秒)
如果需要,将其更改为更高的值。 max_execution_time = 240是4分钟
只有在所有进程完成后,您还可以查看mysql事务以提交更改。