我需要更新数百到数千行。我想知道以下哪个选项更好:
更多信息:
插入应该更快,因为我可以将多个行批处理到一个查询中,但这是一个读取繁重的表,我担心锁定。插入查询会导致比多次更新查询更多的锁定问题吗?
由于
答案 0 :(得分:0)
对一个或多个表执行多个操作时应使用事务,以允许您将数据库返回到一致状态,以防其中一个操作出现错误...
优势:
我们可以说以下交易的优势 维持
交易很有用
请参阅此(简单)示例:
// Set autocommit to off
mysqli_autocommit($con,FALSE);
// Update values
mysqli_query($con,"UPDATE ...");
mysqli_query($con,"UPDATE ...");
// or do it with prepared statements and run bind_params(...) and execute() in a loop (anyway the better solution // however your situation is
// Commit transaction
mysqli_commit($con);
// Close connection
mysqli_close($con);
请参阅: http://dev.mysql.com/doc/refman/5.0/en/commit.html http://dev.mysql.com/doc/refman/5.6/en/innodb-implicit-commit.html
<强>旁注:强>
如果您想在没有交易的情况下进行此操作,更新将更快(与插入...相比)