Mezipaměť dotazů MySQL ukládá výsledky dotazů často a nedávno spouštěných dotazů, takže je lze rychle vrátit, aniž by bylo nutné zpracovávat vše od začátku. Jsou velmi užitečné při zlepšování rychlosti dotazů a výkonu databáze. Zde jsou kroky k povolení mezipaměti dotazů MySQL pro vaši databázi, nastavení velikosti mezipaměti MySQL a zakázání mezipaměti dotazů. Poznámka , Mezipaměť dotazů MySQL byla v MySQL 5.7 zastaralá a v MySQL 8.0 byla odstraněna.
Jak povolit mezipaměť dotazů MySQL
Zde je konfigurace mezipaměti MySQL Query pro vaši databázi.
1. Zkontrolujte dostupnost
Přihlaste se do MySQL a spusťte následující příkaz, abyste zkontrolovali, zda je pro vaši databázi dostupná mezipaměť dotazů MySQL.
mysql> SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+
Pokud dostanete výsledek jako ANO, znamená to, že vaše databáze podporuje mezipaměť dotazů.
Bonusové čtení:Jak povolit protokol pomalých dotazů MySQL
2. Výchozí proměnné mezipaměti dotazu
Mezipaměť dotazů MySQL je řízena mnoha proměnnými. Spuštěním následujícího příkazu nejprve zobrazíte jejich výchozí hodnoty, než je změníte.
mysql> show variables like 'query_cache_%' ;
Uvidíte následující výstup
+------------------------------+----------+ | Variable_name | Value | +------------------------------+----------+ | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 16777216 | | query_cache_type | OFF | | query_cache_wlock_invalidate | OFF | +------------------------------+----------+
Podívejme se na výše uvedené proměnné mezipaměti dotazů
- query_cache_limit – maximální velikost výsledků dotazů, které lze uložit do mezipaměti
- query_cache_min_res_result – MySQL ukládá výsledky dotazů v blocích. Toto je minimální velikost každého bloku.
- query_cache_size – označuje celkové množství paměti přidělené pro mezipaměť MySQL.
- query_cache_type – nastavení na 0 nebo OFF zakáže mezipaměť dotazů MySQL. nastavením na 1 povolíte mezipaměť dotazů.
- query_cache_wlock_invalidate – určuje, zda má MySQL načítat výsledky z mezipaměti, pokud je základní tabulka uzamčena.
Bonusové čtení:5 nejlepších nástrojů pro monitorování MySQL
3. Povolit mezipaměť dotazů MySQL
Odhlaste se z MySQL. Otevřete terminál a spusťte následující příkaz pro otevření konfiguračního souboru MySQL.
$ sudo vi /etc/mysql/my.cnf
Přidejte následující řádky pod sekci [mysqld]
...
[mysqld]
query_cache_type=1
query_cache_size = 10M
query_cache_limit=256K
Povolili jsme mezipaměť dotazů nastavením proměnné query_cache_type na 1, přičemž mezipaměť jednotlivých dotazů je 256 kB a celková mezipaměť je 10 Mb. Hodnoty query_cache_size a query_cache_limit můžete změnit podle svých požadavků.
Bonusové čtení:Jak zrychlit dotazy MySQL
4. Restartujte databázi MySQL
Pro použití změn restartujte MySQL
$ sudo systemctl restart mysql
NEBO
$ sudo service mysql restart
NEBO
$ sudo /etc/init.d/mysql restart
Doufejme, že vám tento článek pomůže s konfigurací mezipaměti dotazů MySQL.