FirstMatch strategy

You are viewing an old version of this article. View the current version here.

The idea

FirstMatch is an execution strategy for Semi-join subqueries.

It is very similar to how IN/EXISTS subqueries were executed in MySQL 5.x.

Let's take the usual example of search for countries with big cities:

select * from Country 
where Country.code IN (select City.Country 
                       from City 
                       where City.Population > 1*1000*1000)
      and Country.continent='Europe'

Suppose, our execution plan is to find countries in Europe, and then for each found country check if it has any big cities. Regular inner join execution will look as follows:

firstmatch-inner-join

Since Germany has got two big cities (in this diagram), it will be put into query output two times. FirstMatch strategy solves this by short-cutting execution as soon as the first match was found:

firstmatch-firstmatch

Comments

Comments loading...
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.