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.