Кешът на MySQL работи по различен начин в зависимост от това дали използвате машината за съхранение MyISAM или машината за съхранение InnoDB.
MyISAM кешира само индекси, не и данни. Можете да използвате LOAD INDEX INTO CACHE
за предварително зареждане на MyISAM индекси в кеша на буфера на ключовете. Но няма еквивалентен израз, ако използвате InnoDB.
InnoDB кешира както данни, така и индексни страници. Няма специализирана команда за загряване на кеш буферите, но можете да изпълните няколко SQL оператора, които извършват пълно сканиране на таблици и пълно сканиране на индекс, за да ги заредите в буферите. Трябва да можете да направите това с помощта на скрипт на сървъра, без да прибягвате до wget
!
Съгласен съм с отговора от @code_burgar:150 000 реда са достатъчно малко, за да не забележите голямо намаляване на производителността, докато кешът се загрява.
Ако говорите за загряване на кеша на заявките , това е друг въпрос. Ще трябва да загреете кеша на заявките, като използвате конкретни SQL заявки, тъй като този кеш пази набори от резултати, свързани с тези SQL заявки дословно. Вашият wget
решението е неефективно и вероятно дублира много работа. Трябва да можете да заредите кеша на заявките, като стартирате скрипт на сървъра, който изпълнява всяка заявка, която искате да кеширате веднъж .
Но може да се наложи да направите преглед на кода, за да разберете какви са тези заявки, и периодично да актуализирате своя скрипт за предварително зареждане на кеша, ако кодът ви се промени.