mysql - What does FirstMatch mean in a EXPLAIN statement? -
today noticed "new" type in explain
of statement.
this query
select urlid,'61','australia' dbase.phonenumbers urlid in (select urlid dbase.phonenumbers phonenumber '+31%') , phonenumber '+61%'
and explain gives this,
phonenumbers range urlid_phonenumber,phonenumber phonenumber 12 4176 using phonenumbers ref urlid_phonenumber,phonenumber urlid_phonenumber 4 dbase.phonenumbers.urlid 4 using where; using index; firstmatch(phonenumbers)
what firstmatch(phonenumbers)
mean? never seen before , couldnt find quick enough explain it.
it strategy avoids production of duplicates short-cutting execution first genuine match found.
so firstmatch(phonenumbers)
means have produced 1 matching record combination, short-cut execution , jump phonenumbers
table.
from firstmatch strategy
- the firstmatch strategy works executing subquery , short-cutting execution first match found.
- this means, subquery tables must after of parent select's tables referred subquery predicate.
- explain shows firstmatch "firstmatch(tablen)".
- the strategy can handle correlated subqueries.
- but cannot applied if subquery has meaningful group and/or aggregate functions.
- use of firstmatch strategy controlled firstmatch=on|off flag in optimizer_switch variable.
Comments
Post a Comment