Wykorzystuje on w swoim działaniu poniższą klasę. Może komuś jeszcze się przyda

<?php /** * optymalizacja bazy danych MySQL * @author `Speedy` <sppeedy@poczta.fm> * @copy (c) `Speedy` 2006 * @version 1.0 */ class optimize_database { /** * identyfikator połączenia z bazą danych */ var $connection; /** * nawiązuje połączenie z bazą danych * @param string $host nazwa hosta * @param string $db nazwa bazy danych * @param string $user nazwa użytkownika * @param string $password hasło użytkownika */ function connect($host,$user,$password,$db) { if(!$this->connection) { } { } } /** * zamyka połączenie z bazą danych * @param void * @return void */ function disconnect() { } /** * tworzy tablicę wielowymiarową * ze wszystkimi wierszami w tabeli określonej zapytaniem * klucze w tablicy, to nazwy tabel * @param string $query zapytanie SQL * @return array $result wynik */ function mysql_fetch_all($query) { { { $result[$row['Name']] = $row; } } return $result; } /** * Pobiera informacje o tabelach z bazy danych * @param string $host nazwa hosta * @param string $db nazwa bazy danych * @param string $user nazwa użytkownika * @param string $password hasło użytkownika * @return array tabele wraz z informacjami */ function get_tables($host,$user,$password,$db) { $this->connect($host,$user,$password,$db); $result = $this->mysql_fetch_all('SHOW TABLE STATUS'); return $result; } /** * pobiera tabele, które powinny zostać zoptymalizowane * @param string $host nazwa hosta * @param string $db nazwa bazy danych * @param string $user nazwa użytkownika * @param string $password hasło użytkownika * @return array $result zoptymalizowane tabele */ function get_overloaded_tables($host,$user,$password,$db) { $tables = $this->get_tables($host,$user,$password,$db); foreach($tables as $table => $value) { if($value['Data_free'] > 0) { $result[$table] = $value; } } return $result; } /** * optymalizuje tabele * @param string $host nazwa hosta * @param string $db nazwa bazy danych * @param string $user nazwa użytkownika * @param string $password hasło użytkownika * @return int $data_free ilość zwolnionego miejsca (w bajtach) */ function do_optimization($host,$user,$password,$db) { $array = $this->get_overloaded_tables($host,$user,$password,$db); { foreach($array as $table => $value) { $data_free += $value['Data_free']; } } else { $data_free = 0; } $this->disconnect(); return $data_free; } } ?>
sposób użycia:
<?php require 'optimize_database.class.php'; // plik z klasą $optimize_database = new optimize_database; $data_free = $optimize_database -> do_optimization('localhost','admin','password','bazadanych'); ?>