The work on subquery optimizations goes on, and we're already
curious how the assortment of new 6.0 subquery optimizations compares to
what is found in other DBMSes. MySQL's new strategies are not
DBMS theory breakthroughs, similar ideas have been implemented in
other DBMSes, but when you take this list of strategies and put
them into this kind of optimizer, the result has no direct
equivalents in any other DBMS (or at least we believe so).
The first thing we did was to take a look at PostgreSQL as it is
easily available and seems to have at least decent subquery
handling (or even better than decent, I have not heard much
complaints). And the first interesting difference was handling of
correlated subqueries. With exception of materialization, MySQL's
new subquery strategies do not care if the subquery is correlated
or not.
For example, …
[Read more]