Scripts

overhead verwijderen

script die ik gemaakt heb om alle overhead in mysql database weg te halen. Overhead is als er rijen worden toegevoegd en verwijderd , op den duur kun je veel overhead krijgen wat zonde is van je mysql ruimte. deze script doet precies het zelde als de script van VeeWee http://www.phphulp.nl/php/scripts/2/174/ wat ik ook als voorbeeld heb gebruikt alleen deze pakt alle tabbellen in de database automatische , als je een grote database is het best wel wat werk om al die tabbellen in je script te zetten. ( of ik ben gewoon te lui :P)

overhead-verwijderen
<?
//mark kloosterhuis
//settings
$db_url = '***';
$db_user = '***';
$db_pass = '***';
$db_naam = '***';

//connecteb
@mysql_connect($db_url, $db_user, $db_pass)or die('Er kan geen verbinding worden gemaakt met je database server. Probeer de juiste gegevens in te vullen.');
@mysql_select_db($db_naam) or die('De databasenaam die je hebt ingevuld lijkt niet te bestaan.');

$tabbellenover = 0;
$tabbellen = 0;
$totaaloverhead = 0;

//tabellen ophalen
$result = mysql_query("SHOW TABLES FROM $db_naam");
while ($tabel = mysql_fetch_row($result)) {
$tabbellen++;
//elke tabel checken of er overhead is
    $sql_overhead = mysql_query("SHOW TABLE STATUS LIKE '".$tabel[0]."'");
    $overhead = mysql_fetch_array($sql_overhead);
    //als er overhead is dan deleten
    if ($overhead['Data_free'] > 0){
        $tabbellenover++;
        $totaaloverhead += $overhead['Data_free']; 
        $optimize = mysql_query("OPTIMIZE TABLE ".$tabel[0]); 

        //melden hoeveel overhead er verwijderd is
        echo "Er is een overhead van ".$overhead['Data_free']." Bytes verwijderd in ".$tabel[0]."!<br />";
    }
    else {
        echo "Er is geen overhead in ".$tabel[0]."!<br />";
    }
}
echo "<br>totaal aantal tabbellen : ".$tabbellen."<br>";
echo "totaal aantal tabbellen met overhead : ".$tabbellenover."<br>";
echo "totaal aantal Bytes verwijderd : ".$totaaloverhead."<br>";
?>

Reacties

0
Nog geen reacties.