Vyřešil jsem problém s pomalým dotazem. Abychom problém shrnuli, dotaz na 7000 řádků z 20miln řádkové, 1,7GB indexované tabulky trvalo 22 sekund. Problém byl v tom, že cache byla příliš malá a dotaz musel jít na disk pro každý dotaz. Domníval bych se, že přístup na disk by byl rychlejší, než jsem viděl, protože jsem vycházel z indexovaného sloupce, takže množství dat načtených z disku by mělo být malé. Ale předpokládám, že s přístupem k úložišti InnoDB na disku je spousta režií.
Jakmile nastavím innodb_buffer_pool_size=1024M
v souboru my.ini by počáteční dotaz trval dlouho, ale všechny následující dotazy by skončily za méně než sekundu.
Bohužel, profilování opravdu nepomohlo.