Ik ben geen expert op dit gebied, maar hier zijn een paar gedachten:
Querysnelheid duurt langer wanneer g.F2
wijzigingen is vanwege caching. MySQL slaat de resultaten voor elke zoekopdracht op (totdat de cache vol is), maar nieuwe zoekopdrachten worden uitgevoerd op een lege cache, dus ze duren langer. Op basis hiervan moet je niet optimaliseren. (Zie Hoe nauwkeurig meten
)
Ik kan uit uw gegevens niet opmaken of de g
of gp
tabel heeft een grotere specificiteit (lijkt op gp
?) in de where
clausule, maar misschien wilt u in plaats daarvan een subquery proberen. (Zie Hoe de innerlijke query eerst uit te voeren
)
Met betrekking tot profilering is het mogelijk dat u een fysieke drempel bereikt, zoals het overschrijden van ram-toewijzing (het gebruik van swap is funest voor de prestaties) die niet duidelijk zou zijn uit explain
, of dat explain
is in dit geval gewoon verkeerd.