我在function rev(me, droppable) {
...
droppable.droppable("option", "disabled", false);
}
用户表中有大约230K
条记录,我正在通过MySQL
更新14K
用户信息,并使用简单php
来自变量并使用{{ 1}}查询以更新foreach
用户的列。我需要update
来运行查询。首先,我需要14K
分钟来更新大约1 hour, 9 min approx
,然后再用13
分钟更新剩余的记录。
这是常见的还是我需要升级我的系统,我正在运行。我有1100 records
并使用56
。
如果这是常见的,那么大公司在mysql中以最快的方式处理如此或更大数量的用户记录的最佳方式是什么?
以防万一,如果有人需要知道运行的确切代码。
8GB RAM, i5 processor 2nd gen
答案 0 :(得分:1)
您可以使用准备好的查询加快速度,因此只需要解析一次查询。
$stmt = $mysqli->prepare("UPDATE user_table SET col_name = ? WHERE id = ?");
$stmt->bind_param("si", $col_name, $id);
foreach ($_SESSION['tupple'] as $value) {
$col_name = $value['col_name'];
$id = $value['id'];
$stmt->execute();
}
另外,如果您正在使用InnoDB,请在循环之前启动事务,并在结束时提交它。
$mysqli->begin_transaction(MYSQLI_TRANS_START_READ_WRITE);
// above loop
$mysqli->commit();
还可以在单个查询中更新多行:
UPDATE user_table
SET col_name = CASE id
WHEN $id1 THEN '$name1'
WHEN $id2 THEN '$name2'
WHEN $id3 THEN '$name3'
...
END
WHERE id IN ($id1, $id2, $id3, ...)
您可以使用此类语法将$_SESSION['tupple']
中的多个条目分组为批次。