Jeg er ikke ekspert på dette område, men her er et par tanker:
Forespørgselshastighed tager længere tid, når g.F2
ændringer er på grund af caching. MySQL gemmer resultaterne for hver forespørgsel (indtil cachen er fuld), men nye forespørgsler køres på en tom cache, så de tager længere tid. Du skal ikke optimere ud fra dette. (Se Hvordan man måle nøjagtigt
)
Jeg kan ikke se ud fra dine oplysninger, om g
eller gp
tabel har større specificitet (ser ud som gp
?) i where
klausul, men du vil måske prøve en underforespørgsel i stedet for. (Se Sådan tvinges den indre forespørgsel til at udføre først
)
Med hensyn til profilering er det muligt, at du rammer en fysisk tærskel som at overskride ram-allokering (brug af swap er katastrofalt for ydeevnen), som ikke ville være indlysende fra explain
, eller om explain
er bare forkert i dette tilfælde.