Kiedy masz kilka baz danych MySQL na swoim serwerze, od czasu do czasu konieczne jest zoptymalizowanie ich wszystkich za jednym zamachem, aby nie musieć przechodzić do ulubionego narzędzia do zarządzania bazami danych (na przykład najpopularniejszego phpMyAdmina), a generalnie leniwa matka ciągle mówi że, mówią, „nie musisz nigdzie jechać, niech tak się stanie” 🙂
W tym przypadku oczywiście łatwiej jest użyć jakiegoś skryptu, który mógłby ujawnić wszystkie dostępne bazy danych, a następnie ominąć je niezależnie i zoptymalizować je ...
Tak więc, kiedy znalazłem ten skrypt w przestrzeni globalnej sieci, ale teraz pojawiła się sytuacja, że zacząłem go używać, więc podzielę się nim z tobą, moi drodzy goście 🙂 Nie wiem, kto go stworzył, więc przepraszam z góry, jeśli ktoś znajdzie swoje linie kodu - napisz w komentarzach, a następnie ...
Tak więc rzeczywisty skrypt PHP, który możesz uruchamiać za pomocą piór, kiedy tylko chcesz, lub po prostu powiesić go na cronie, aby zapomnieć o tak ważnym procesie jak optymalizacja bazy danych MySQL 🙂
<? php error_reporting (0); echo '<html> <head> <title> Optymalizuj wszystkie bazy danych </ title> </ head> <body>'; echo '-'. „n”; set_time_limit (90); $ time = microtime (); $ time = eksploduj ('', $ time); $ time = $ time [1] + $ time [0]; $ start = $ time; // DANE DO PODŁĄCZENIA SERWERA BAZY DANYCH $ h = 'localhost'; // HOST $ u = 'nazwa_serwera_bazy_danych'; // NAZWA UŻYTKOWNIKA $ p = 'bLa_Bla_blA'; // HASŁO $ dummy_db = 'mysql'; $ db_link = mysql_connect ($ h, $ u, $ p); $ res = mysql_db_query ($ dummy_db, 'SHOW DATABASES', $ db_link) lub die ('Nie można połączyć:'. mysql_error ()); echo 'Znaleziono bazy danych:'. mysql_num_rows ($ res). „n ------------------------------------ n”; $ dbs = array (); while ($ rec = mysql_fetch_array ($ res)) {$ dbs [] = $ rec [0]; } foreach ($ dbs jako $ db_name) {echo "DB $ db_name n"; $ res = mysql_db_query ($ dummy_db, „SHOW TABLE STATUS FROM”). $ db_name. „` ”, $ db_link) lub die („ Query: ”. mysql_error ()); $ to_optimize = array (); while ($ rec = mysql_fetch_array ($ res)) {if ($ rec ['Data_free']> 0) {$ to_optimize [] = $ rec ['Name']; echo "| - table '". $ rec ['Name']. „” wymaga optymalizacji / optymalizacji. ” „n”; }} if (count ($ to_optimize)> 0) {foreach ($ to_optimize jako $ tbl) {mysql_db_query ($ db_name, "OPTIMIZE TABLE`". $ tbl. "` ", $ db_link); }}} $ time = microtime (); $ time = eksploduj ('', $ time); $ time = $ time [1] + $ time [0]; $ finish = $ time; $ total_time = round (($ finish - $ start), 6); echo "------------------------------------ n Uruchom dla." $ total_time. „sek.” . ��n”; echo '</ body> </ html>'; ?>
<? php error_reporting (0); echo '<html> <head> <title> Optymalizuj wszystkie bazy danych </ title> </ head> <body>'; echo '-'. „n”; set_time_limit (90); $ time = microtime (); $ time = eksploduj ('', $ time); $ time = $ time [1] + $ time [0]; $ start = $ time; // DANE DO PODŁĄCZENIA SERWERA BAZY DANYCH $ h = 'localhost'; // HOST $ u = 'nazwa_serwera_bazy_danych'; // NAZWA UŻYTKOWNIKA $ p = 'bLa_Bla_blA'; // HASŁO $ dummy_db = 'mysql'; $ db_link = mysql_connect ($ h, $ u, $ p); $ res = mysql_db_query ($ dummy_db, 'SHOW DATABASES', $ db_link) lub die ('Nie można połączyć:'. mysql_error ()); echo 'Znaleziono bazy danych:'. mysql_num_rows ($ res). „n ------------------------------------ n”; $ dbs = array (); while ($ rec = mysql_fetch_array ($ res)) {$ dbs [] = $ rec [0]; } foreach ($ dbs jako $ db_name) {echo "DB $ db_name n"; $ res = mysql_db_query ($ dummy_db, „SHOW TABLE STATUS FROM”). $ db_name. „` ”, $ db_link) lub die („ Query: ”. mysql_error ()); $ to_optimize = array (); while ($ rec = mysql_fetch_array ($ res)) {if ($ rec ['Data_free']> 0) {$ to_optimize [] = $ rec ['Name']; echo "| - table '". $ rec ['Name']. „” wymaga optymalizacji / optymalizacji. ” „n”; }} if (count ($ to_optimize)> 0) {foreach ($ to_optimize jako $ tbl) {mysql_db_query ($ db_name, "OPTIMIZE TABLE`". $ tbl. "` ", $ db_link); }}} $ time = microtime (); $ time = eksploduj ('', $ time); $ time = $ time [1] + $ time [0]; $ finish = $ time; $ total_time = round (($ finish - $ start), 6); echo "------------------------------------ nPerformed for." $ total_time. „sek.” . ��n”; echo '</ body> </ html>'; ?>
Oczywiście użytkownik określony powyżej w skrypcie powinien mieć prawo dostępu do wszystkich baz danych, które muszą być zoptymalizowane przy użyciu tego ...
?n”; echo '</ body> </ html>'; ??n”; echo '</ body> </ html>'; ?