O soluție pentru MySQL foarte lent

Încercam ieri să testez o îmbunătățire la un algoritm de căutare, când am observat că containerul docker cu mysql răspundea foarte foarte greu. Cam peste câteva secunde așa.

Prima încercare a fost restart – nu mă luați la rost, era serverul local vroiam doar să pot testa! În fine chiar și după restart rezultatul a fost același – mysql era foarte lent.
O scurtă verificare a logurilor a scos la iveală următoarele

[Warning] IP address '172.17.0.4' could not be resolved: Temporary failure in name resolution

Aparent, în mod implicit mysql încearcă să rezolve domeniile utilizatorilor conectați, iar asta adaugă timp prețios la fiecare cerere.
Pentru a sări acești timpi putem adăuga următorii parametri în fișierul my.cnf:

skip-name-resolve
skip-host-cache

Cu skip-name-resolve mysql nu va mai rezolva host-ul la fiecare conexiune nouă iar skip-host-cache va ignora cache-ul dns intern. Mai multe puteți afla aici: https://dev.mysql.com/doc/refman/5.5/en/host-cache.html .
De asemeea aceste setări nu sunt recomandate în producție fără o testare în prealabil.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *