【发布时间】: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