Cache w MySQL

Cache w MySQL

Temat optymalizacji i przyspieszania skryptów, serwerów i komputerów towarzyszy mi od zawsze. Pisałem już trochę o wszelkiego rodzaju mikro optymalizacjach, o cache’owaniu wyników PHP, przyspiesznaiu serwerów poprzez rozwiązania typu eaccelerator, ale jakoś pominąłem podstawowy i ważny aspekt prawie każdego projektu – serwer MySQL.

Zasadniczo uruchomienie cache w MySQL nie jest specjalnie skomplikowane. Musimy dodać dwie linijki do konfiguracji serwera:

query_cache_size=16777216
query_cache_type=1

Pierwsza linijka wskazuje na rozmiar cache w bajtach, druga na typ (0 – off, 1 – on, 2-… przeczytaj dokumentację)

Można też ustawić rozmiar cache z “linii” poleceń MySQL poprzez wpisanie zapytania

mysql> SET GLOBAL query_cache_size = 16777216;

ewentualnie sprawdzić aktualną wartość:

mysql> SHOW VARIABLES LIKE 'query_cache_size'; 

wynik:

+------------------+----------+
| Variable_name    | Value    |
+------------------+----------+
| query_cache_size | 16777216 |
+------------------+----------+

Wartość 0 oznacza, że cache nie działa. Warto dodać te linijki do konfiguracji serwera mysql – trzeba odnaleźć plik my.cnf (zwykle będą to okolice /etc/my.cnf albo /etc/mysql/my.cnf)