Andrei Lepikhov speeds up a query:
Occasionally, you may come across queries featuring complex filters similar to the following:
SELECT * FROM table
WHERE
date > min_date AND
date < now() - interval '1 day' AND
value IN Subplan AND
id = 42';
And in practice, it happens that a simple rearrangement of the order of conditions in such an expression allows for speeding up (sometimes quite notably) the query execution time. Why?
Read on for the answer. In a perfect world, SQL is a 4th generation language and the order of operations should make zero difference for query performance. In practice, as Andrei shows, this is a challenge for the developers of the relational databases we use.