Не съм експерт в тази област, но ето няколко мисли:
Скоростта на заявката отнема повече време, когато g.F2
промените се дължат на кеширане. MySQL ще запази резултатите за всяка заявка (докато кешът се запълни), но новите заявки се изпълняват на празен кеш, така че отнемат повече време. Не трябва да оптимизирате въз основа на това. (Вижте Как да измерете точно
)
От вашата информация не мога да разбера дали g
или gp
таблицата има по-голяма специфичност (изглежда като gp
?) в where
клауза, но може да искате да опитате подзаявка вместо това. (Вижте Как да принудим вътрешната заявка да се изпълни първа
)
По отношение на профилирането е възможно да достигнете физически праг като превишаване на разпределението на ram (използването на swap е катастрофално за производителността), което не би било очевидно от explain
, или дали explain
е просто погрешно в този случай.