SELECT vs UPDATE performance with index

Viewed 11513

If I SELECT IDs then UPDATE using those IDs, then the UPDATE query is faster than if I would UPDATE using the conditions in the SELECT.

To illustrate:

SELECT id FROM table WHERE a IS NULL LIMIT 10; -- 0.00 sec
UPDATE table SET field = value WHERE id IN (...); -- 0.01 sec

The above is about 100 times faster than an UPDATE with the same conditions:

UPDATE table SET field = value WHERE a IS NULL LIMIT 10; -- 0.91 sec

Why?

Note: the a column is indexed.

7 Answers
Related