Mezipaměť MySQL funguje odlišně v závislosti na tom, zda používáte úložiště MyISAM nebo úložiště InnoDB.
MyISAM ukládá do mezipaměti pouze indexy, nikoli data. Můžete použít LOAD INDEX INTO CACHE
k předběžnému načtení indexů MyISAM do mezipaměti klíče. Ale neexistuje ekvivalentní prohlášení, pokud používáte InnoDB.
InnoDB ukládá do mezipaměti data i indexové stránky. Neexistuje žádný specializovaný příkaz pro zahřátí vyrovnávacích pamětí, ale můžete provést několik příkazů SQL, které provedou úplné skenování tabulek a úplné skenování indexů a načtou je do vyrovnávacích pamětí. Měli byste to udělat pomocí skriptu na serveru bez použití wget
!
Souhlasím s odpovědí od @code_burgar:150 000 řádků je dostatečně málo na to, abyste si během zahřívání mezipaměti neměli všimnout velkého snížení výkonu.
Pokud mluvíte o zahřívání mezipaměti dotazů , to je jiný problém. Budete muset zahřát mezipaměť dotazů pomocí konkrétních dotazů SQL, protože tato mezipaměť uchovává sady výsledků spojené s těmito dotazy SQL doslovně. Váš wget
řešení je neefektivní a pravděpodobně duplikuje spoustu práce. Měli byste být schopni spustit mezipaměť dotazů spuštěním skriptu na serveru, který provede každý dotaz, který chcete uložit do mezipaměti jednou .
Možná však budete muset provést kontrolu kódu, abyste zjistili, jaké jsou tyto dotazy, a pravidelně aktualizovat skript předběžného načtení mezipaměti, pokud se váš kód změní.