如果我SELECT的ID,然后UPDATE用这些ID,那么UPDATE查询是比我快会UPDATE使用的条件SELECT。
SELECT
UPDATE
为了显示:
SELECT id FROM table WHERE a IS NULL LIMIT 10; -- 0.00 sec UPDATE table SET field = value WHERE id IN (...); -- 0.01 sec
UPDATE在相同条件下,上述速度比大约快100倍:
UPDATE table SET field = value WHERE a IS NULL LIMIT 10; -- 0.91 sec
为什么?
注意:该a列 已建立 索引。
a
第二条UPDATE语句很可能会锁定更多行,而第一条语句使用唯一键并仅锁定要更新的行。