Кэш MySQL работает по-разному, в зависимости от того, используете ли вы механизм хранения MyISAM или механизм хранения InnoDB.
MyISAM кэширует только индексы, а не данные. Вы можете использовать LOAD INDEX INTO CACHE
для предварительной загрузки индексов MyISAM в буферный кеш ключа. Но нет эквивалентного утверждения, если вы используете InnoDB.
InnoDB кэширует как страницы данных, так и страницы индекса. Нет специальной команды для разогрева буферов кеша, но вы можете выполнить несколько операторов SQL, которые выполняют полное сканирование таблицы и полное сканирование индекса, чтобы загрузить их в буферы. Вы должны быть в состоянии сделать это, используя скрипт на сервере, не прибегая к wget
!
Я согласен с ответом @code_burgar: 150 тыс. Строк достаточно мало, чтобы не замечать значительного снижения производительности во время прогрева кеша.
Если вы говорите о прогреве Query Cache , это другая проблема. Вам придется прогреть кэш запросов, используя конкретные запросы SQL, поскольку этот кэш хранит наборы результатов, дословно связанные с этими запросами SQL. Ваше wget
решение неэффективно и, вероятно, дублирует большую работу. Вы должны быть в состоянии заполнить кэш запросов, запустив скрипт на сервере, который выполняет каждый запрос, который вы хотите кэшировать один раз .
Но вам может потребоваться выполнить анализ кода, чтобы выяснить, что это за запросы, и периодически обновлять сценарий предварительной загрузки кэша, если ваш код изменяется.