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
)