【问题标题】:LAMP/MySQL - run time delay during SQL batch insertLAMP/MySQL - SQL 批量插入期间的运行时间延迟
【发布时间】:2020-12-13 10:48:56
【问题描述】:

我有一个 SQL 批量插入语句,该语句已通过解释正确索引和验证。我正在使用批量插入创建 73 行。作为批量插入的一部分,我在每个插入的记录上使用 NOW() 记录日期/时间戳。

在插入过程中,插入 68 条记录后,在创建剩余 5 条记录之前有 50 秒的延迟。

插入过程中可能导致延迟的原因是什么?我应该检查哪些日志?

$values = "";
foreach ($recipients as $recipient) {
    $values = $values . "(" .
              $msg['msg_id'] . "," .
              $recipient['mbr_id'] . "," .
              "NOW()" . "),";
}

// remove the last comma from the value list to terminate the values list
$values = rtrim($values, ",");

$sql = "INSERT INTO message (message_id, member_id, create_dtm)
        VALUES " . $values;

// internal library function using PDO to write to the database 
$pdb->db_commit($sql);  

任何帮助将不胜感激。

【问题讨论】:

  • edit向我们展示您的SQL批量插入语句。
  • 按要求完成
  • 尝试使用SYSDATE() 而不是NOW()innodb_lock_wait_timeout 是否等于 50?是否有其他东西同时运行?
  • 感谢您的帮助。在您为我提供的帮助下,我发现必须为 MYSQL 分配更多内存。数据库性能不佳,导致锁超时。

标签: mysql performance lamp query-performance


【解决方案1】:

感谢有关 innodb_lock_wait_timeout 的 cmets,我发现必须为 MySql 分配更多内存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-19
    • 2017-10-25
    • 1970-01-01
    • 2012-09-11
    • 2017-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多