sql >> Databáze >  >> RDS >> Mysql

Jak ručně vytvořit mezipaměť mysql

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í.



  1. Oracle - doslovný neodpovídá chyba formátovacího řetězce

  2. Objekt nelze v MySQLi PHP převést na řetězec

  3. Jak používat REPLACE v SQL

  4. Chyba syntaxe Chybějící klíčové slovo v příkazu case v klauzuli WHERE