Страниците от файловете с данни innodb се кешират в буферния пул на innodb. Това е, което бихте очаквали. Четенето на файлове е бавно, дори на добри твърди дискове, особено при произволно четене, което виждат предимно базите данни.
Възможно е първата ви заявка да прави някакво сканиране на таблица, което изтегля много страници в буферния пул, след което достъпът до тях е бърз. Или нещо подобно.
Това очаквах.
В идеалния случай използвайте една и съща машина за всички таблици (изключения:системни таблици, временни таблици (може би) и много малки таблици или краткотрайни таблици). Ако не направите това, те трябва да се бият за овен.
Ако приемем, че всичките ви таблици са innodb, накарайте буферния пул да използва до 75% от физическата памет на сървъра (ако приемем, че не изпълнявате твърде много други задачи на машината).
След това ще можете да поставите около 12G от вашата база данни в ram, така че след като тя бъде „загрята“, „най-използваните“ 12G от вашата база данни ще бъдат в ram, където достъпът до нея е приятен и бърз.
Някои потребители на mysql са склонни да "затоплят" производствените сървъри след рестартиране, като им изпращат заявки, копирани от друга машина за известно време (това ще бъдат подчинени на репликация), докато не ги добавят в своя производствен пул. Това избягва изключителната бавност, наблюдавана, докато кешът е студен. Например Youtube прави това (или поне преди; Google ги купи и сега може да използват Google-fu)