【问题标题】:Mysql Query - Multiple queries - Do they run concurrently (edit: consecutively) or simultaneouslyMysql Query - 多个查询 - 它们是同时运行(编辑:连续)还是同时运行
【发布时间】:2014-06-04 00:10:53
【问题描述】:

我有一个执行 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 作业并间隔几分钟运行?

提前致谢。

【问题讨论】:

  • 它们同时运行。单独的 cron 作业会很混乱
  • 感谢@KaiQing - 我使用了一个 cron,它似乎工作正常。你想回答这个问题以便我接受吗?
  • 不要吹毛求疵,但不要“同时”和“同时”表示同一件事(同时或并行发生)?我认为您要查找的词是“连续”而不是“同时”
  • 哈! @jraede 是的,你是对的,谢谢。

标签: php mysql cron


【解决方案1】:

要回答标题中的问题“它们是同时运行还是同时运行”,答案是同时运行。

拥有多个 cron 需要他们知道某个进程是否完成。这可能会变得混乱。把它放在一个文件中是去这里的方法。您可能需要设置最大执行时间以确保脚本不会超时。找到您的 php.ini 文件并查找以下内容: max_execution_time = xxx(秒)

如果需要,可以将其更改为更高的值。 max_execution_time = 240 是 4 分钟

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

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

【讨论】:

    猜你喜欢
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 2012-09-24
    • 1970-01-01
    • 2012-07-09
    • 2013-08-29
    相关资源
    最近更新 更多