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

Jak povolit mezipaměť dotazů MySQL

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.

  1. Jak používat MySql na Macu

  2. Jak spočítat všechny řádky při použití SELECT s LIMIT v dotazu MySQL?

  3. Parametr Sniffing (nebo Spoofing) v SQL Server

  4. Anonymizace nepřímých identifikátorů pro snížení rizika Re-ID