Bohužel mysql (a možná jakékoli dbms) neumí optimalizovat výrazy jako jobs.status != 331 and ack = 0 protože B-Strom není struktura, která umožňuje rychle najít cokoliv, co se-nerovná-konstantní-hodnotě. Vždy tak získáte úplné naskenování.
Pokud by existovala nějaká lepší podmínka jako jobs.status = 331 and ack = 0 (Poznámka ke skutečnosti, že jsem změnil != na = ), pak by bylo vhodné tento dotaz urychlit:
- rozdělte dotaz na 2, spojené pomocí
UNION ALL - v jednom dotazu nahraďte
LEFT JOINdoINNER JOIN(v tom, který znamená, žewq.info is not NULL)