Реших проблема с бавната си заявка. За да обобщим проблема, бяха необходими 22 секунди, за да се заявят 7000 реда от 20 милиона ред, 1,7 GB индексирана таблица. Проблемът беше, че кешът беше твърде малък и заявката трябваше да отиде на диск за всяка заявка. Мисля, че достъпът до диска ще бъде по-бърз от това, което виждах, защото излизах от индексирана колона, така че количеството данни, прочетени от диска, трябваше да е малко. Но предполагам, че има много режийни разходи с достъпа до InnoDB хранилището на диска.
След като задам innodb_buffer_pool_size=1024M
във файла my.ini, първоначалната заявка ще отнеме много време, но всички следващи заявки ще завършат за по-малко от секунда.
За съжаление профилирането не помогна наистина.