Jeg løste mit langsomme forespørgselsproblem. For at opsummere problemet tog det 22 sekunder at forespørge 7000 rækker fra en 20 mio. række, 1,7 GB indekseret tabel. Problemet var, at cachen var for lille, og forespørgslen skulle til disk for hver forespørgsel. Jeg ville tro, at diskadgangen ville være hurtigere end det, jeg så, fordi jeg gik fra en indekseret kolonne, så mængden af data, der blev læst fra disken, burde have været lille. Men jeg gætter på, at der er en masse overhead med at få adgang til InnoDB-lageret på disken.
Når jeg indstillede innodb_buffer_pool_size=1024M
i my.ini-filen ville den indledende forespørgsel tage lang tid, men alle efterfølgende forespørgsler ville afslutte på under et sekund.
Desværre hjalp profileringen ikke rigtig.