Mamy taki przypadek. Jest jedna wieksza tabela , założmy 2 mln rekordów do której dołączamy kilka mniejszych po 200-400 każda.
Czyli coś w stylu :
SELECT st.pole2,bt.pole1,bt.pole2, st.pole1,MAX(bt.pole3) FROM big_table bt LEFT JOIN small_table st ON (st.id_small=bt.id_small) WHERE bt.pole2='T' AND bt.pole1=21 GROUP BY st.pole2
Wszystko fajnei działą gdy duża tabela ma ok 100k rekordów. Gdy wchodzimy na większa ilość krotek , wszystko diametralnie zwalnia.
Czy ktoś ma może pomysł jak takie zapytanko zooptymalizować ? Indeksy są założone na PK i FK , i testowałem już kilka wariantów z indeksami na innych polach (m.in na tym po którym grupuje). Efekt zerowy.
Silnik InnoDB.