一尘不染

SELECT vs UPDATE性能与索引

mysql

如果我SELECT的ID,然后UPDATE用这些ID,那么UPDATE查询是比我快会UPDATE使用的条件SELECT

为了显示:

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已建立 索引。


阅读 338

收藏
2020-05-17

共1个答案

一尘不染

第二条UPDATE语句很可能会锁定更多行,而第一条语句使用唯一键并仅锁定要更新的行。

2020-05-17