Optimizați tabelele unei baze de date MySQL

  • 59Cote
  • Facebook
  • Stare de nervozitate
  • pinterest

Majoritatea site-urilor web de astăzi folosesc un manager de conținut, care la rândul său utilizează o bază de date pentru a stoca și afișa conținut. De fiecare dată când se face o solicitare dintr-un browser web și atâta timp cât nu este activat niciun program de cache, sistemul accesează tabelele pentru a procesa datele. Deși memoria cache este activată, baza de date este în procesare continuă dacă site-ul are multe vizite. Salvează și afișează continuu informații.

Tabelele bazelor de date sunt partiționate, iar procesarea informațiilor devine mai lentă și mai obositoare. Există câteva modalități de a optimiza tabele cu reziduuri de curățat. Cea mai folosită și plictisitoare este accesarea bazelor de date printr-un manager, precum phpMyAdmin, marcarea tabelelor de depanat și clic pe opțiunea de optimizare a tabelului. Dar mai sunt câteva.

Script pentru optimizarea bazelor de date

Mai jos arătăm un script în PHP, pe care trebuie să îl salvam într-un director al site-ului nostru web, care este responsabil cu optimizarea tabelelor bazei de date găzduite pe serverul nostru MySQL.

După ce indicăm datele de acces la server, trebuie să încărcăm scriptul, prin FTP, pe serverul nostru web cu numele dorit, de exemplu, optimiza.php.

Putem rula acest script manual din browserul web oricând dorim, sau putem crea un cronjob pentru execuție automată. În acest al doilea caz, va trebui să acordăm scriptului permisiunile corespunzătoare: 755 sau 777.

Acesta este scenariul:

' . " "; set_time_limit( 100 ); $timp = microtimp(); $timp = explode(' ', $timp); $timp = $timp[1 + $timp[0; $start = $timp; //Variabile de conexiune : $h = 'server'; $u = 'nume_utilizator'; $p = 'parola'; $dummy_db = 'mysql'; $db_link = mysql_connect($h,$u,$p); $res = mysql_db_query($dummy_db, 'SHOW DATABAZE', $db_link) sau die('Nu s-a putut conecta: ' . mysql_error()); ecou 'Găsit'. mysql_num_rows( $res ) . 'baze de date' . " "; $dbs = matrice(); while ( $rec = mysql_fetch_array($res) ) { $dbs [ = $rec [0; } foreach ( $dbs ca $db_name ) { echo "Bază de date : $db_name "; $res = mysql_db_query($dummy_db, "ARAȚI STARE TABEL DE LA `" . $db_name . "`", $db_link) sau die('Apel: ' . mysql_error()); $to_optimize = array(); while ( $rec = mysql_fetch_array($res) ) { if ( $rec['Data_free' > 0 ) { $to_optimize [ = $rec['Nume'; echo $rec['Nume' . 'are nevoie de optimizare' . " "; } } if ( count ( $to_optimize ) > 0 ) { foreach ( $to_optimize as $tbl ) { mysql_db_query($db_name, "OPTIMIZE TABLE `" . $tbl ."`", $db_link ); } } } $timp = microtimp(); $timp = explode(' ', $timp); $timp = $timp[1 + $timp[0; $termină = $timp; $timp_total = round(($terminare - $start), 6); echo 'Analizat în' . $total_time . 'secunde' . " "; ?>

Înainte de a-l încărca pe serverul web cu un client FTP, nu uitați să schimbați serverul, numele de utilizator și parola cu cele corespunzătoare serverului dvs. MySQL.

  • 59Cote
  • Facebook
  • Stare de nervozitate
  • pinterest

Lasă Un Comentariu

Please enter your comment!
Please enter your name here