遅いクエリの問題を解決しました。問題を要約すると、20mlnの行、1.7GBのインデックス付きテーブルから7000行をクエリするのに22秒かかりました。問題は、キャッシュが小さすぎて、クエリごとにディスクに移動する必要があることでした。インデックス付きの列から離れていたので、ディスクから読み取られるデータの量は少ないはずだったので、ディスクアクセスは私が見たものよりも速いと思います。しかし、ディスク上のInnoDBストレージにアクセスすることには多くのオーバーヘッドがあると思います。
innodb_buffer_pool_size=1024M
を設定したら my.iniファイルでは、最初のクエリに長い時間がかかりますが、後続のすべてのクエリは1秒以内に終了します。
残念ながら、プロファイリングは実際には役に立ちませんでした。