Hi All,
I wonder if anyone can explain something I cannot easily find on google.
Given PostgreSQL 9.3.5 what is locking strategy when executing query such as:
UPDATE table SET some_col = some_val WHERE id IN (SELECT id FROM expensive_query_with_joins).
Is this starting to lock rows after it executed sub-select or is it locking whole table and then executing select?
Is there any advantage in precomputing ids from nested select to run only
UPDATE table SET some_col = some_val WHERE id IN (precomputed_values)?
If it changes anything table has few indices and many millions of rows.
Regards,
Maciek