În lumea găzduirii, MySQL rămâne una dintre cele mai importante componente pentru alimentarea site-urilor web dinamice, a magazinelor de comerț electronic, a sistemelor de gestionare a conținutului (CMS) și a platformelor SaaS. Indiferent dacă gestionați un cluster de găzduire partajată, o infrastructură VPS sau servere dedicate pentru clienți enterprise, controlul asupra operațiunilor interne ale MySQL este esențial.
Un instrument adesea ignorat, dar puternic, este comanda FLUSH – o colecție de instrucțiuni SQL administrative care vă permit să reîncărcați privilegiile, să ștergeți jurnalele, să resetați stările și să asigurați consecvența fără a reporni serverul.
Instrucțiunea FLUSH este utilizată pentru:
Ștergerea memoriei cache interne
Reîncărcarea fișierelor de configurare (cum ar fi tabelele de privilegii)
Resetarea informațiilor de stare
Forțarea MySQL să scrie date tampon pe disc
Numai utilizatorii cu privilegiul RELOAD (sau superior, cum ar fi SUPER) pot executa majoritatea operațiunilor FLUSH.
Reîncarcă privilegiile utilizatorilor din tabelele de acordare din baza de date mysql:
Când să utilizați:
După editarea manuală a mysql.user sau a altor tabele de granturi.
Atunci când modificați accesul utilizatorului prin instrucțiuni UPDATE directe în loc de GRANT.
Închide toate tabelele deschise și le forțează să fie redeschise. Util în cazul întreținerii sistemului de fișiere sau al backup-urilor.
De asemenea, puteți să închideți anumite tabele:
Când să utilizați:
Înainte de a efectua backup-uri cu instrumente externe (de exemplu, mysqldump –single-transaction).
După scrierile pe scară largă care pot supraîncărca memoria cache a tabelelor.
Elimină toate rezultatele interogării din memoria cache a interogării (dacă este activată):
Notă: Query cache este depreciată și eliminată în MySQL 8.0.
Închide și redeschide toate fișierele jurnal (jurnal general, jurnal erori, jurnal binar, jurnal releu).
Sau aruncă un anumit tip:
FLUSH BINARY LOGS;
FLUSH ERROR LOGS;
FLUSH ENGINE LOGS;
FLUSH SLOW LOGS;
Când să utilizați:
După rotația jurnalelor
Când jurnalele sunt mutate sau arhivate
Pentru a reseta jurnalele pentru depanare sau conformitate
Resetează memoria cache a gazdelor de conexiuni eșuate ale clienților.
Când se utilizează:
Atunci când primiți eroarea:Host 'xxx' is blocked because of many connection errors
Resetează majoritatea variabilelor de stare la zero (nu afectează contoarele globale precum Uptime).
Când să utilizați:
Înainte de benchmarking sau testarea performanței.
Pentru a obține metrici curate cu SHOW STATUS.
Șterge și blochează toate tabelele, împiedicând scrierea de la alte sesiuni.
Când se utilizează:
Pentru backup-uri instantanee consistente (de exemplu, cu LVM sau instrumente de copiere a fișierelor).
Important: Deblocați întotdeauna manual cu UNLOCK TABLES;
Reîncarcă fișierele cheie DES utilizate în vechile DES_ENCRYPT()/DES_DECRYPT() (legacy).
Resetează contoarele limitelor de resurse per utilizator (cum ar fi MAX_QUERIES_PER_HOUR).
Când să utilizați:
Resetare la mijlocul ciclului pentru utilizatorii cu resurse limitate.
FLUSH QUERY CACHE este eliminat în MySQL 8.0.
FLUSH DES_KEY_FILE este moștenit.
Luați în considerare alternative mai noi în MySQL 8.0, cum ar fi RESET PERSIST.
Majoritatea operațiunilor FLUSH necesită:
PrivilegiulRELOAD
SUPER sau SYSTEM_VARIABLES_ADMIN (pentru operațiuni sensibile în MySQL 8 )
Exemplu:
Familia de comenzi FLUSH este esențială pentru controlul administrativ în MySQL. Fie că gestionați privilegii, jurnale sau stări ale cache-ului, înțelegerea modului și momentului de utilizare a FLUSH vă ajută să mențineți performanța și fiabilitatea optimă a serverului fără a necesita o repornire. Folosiți-o cu înțelepciune, cu privilegii adecvate, în special în mediile de producție.