Ciao,
credo che la soluzione al problema possa essere un semplice script php che ti faccia un DUMP delle tabelle sovrapopolate e poi cancelli i record più vecchi di una certa data. Ovviamente devi avere un campo di tipo date datetime o timestamp nlle tabelle. Allora che ne so supponi di voler cancellare ogni giorno i record appartenenti a tre giorni prima:
Codice PHP:
// presuppongo che la connessione al DB sia attiva
$table = 'tabella_interessata';
// se oggi è il 2009-04-29 otteniamo 2009-04-26
$last_3day = date('Y-m-d', time()-3*24*60*60);
$query = "SELECT * FROM ".$table." WHERE date<'$last_3day' ORDER BY date";
$queryDB = mysql_query($query);
if(!$queryDB) {
// errore nella query o nella connessione a DB
exit();
} else {
// initializzo l'array dei risultati
$dbresults = array();
$numberrows(mysql_num_rows($queryDB));
if($numberrows > 0){
while($rows=mysql_fetch_assoc($queryDB))
{
$dbresults[]=$rows;
}
}
}
// quindi $dbresults contiene le righe della tabella. Inizializzo la variabile $testo
$testo = '';
foreach($dbresults as $row) {
// qui nonn so come si chiamano i campi...
$campo1 = $row['campo1'];
$campo2 = $row['campo2'];
// etc.....
$testo .= "\"$campo1\",\"$campo2\"/n"; // se hai piu' campi li metti tutti
}
// ok adesso bisogna salvara la variabile testo in un file csv ad esempio (si apre nei fogli di calcolo)
$file = "path_to_file/nome_file.csv";
$fw = fopen($file, 'w');
fwrite($fw, $testo);
fclose($fw);
// ed ora si possono eliminare i dati da DB (controlla prima però che la scrittura dei file vada a buon fine, possono esserci problemi di permessi etc...)
$query_del = "DELETE FROM ".$table." WHERE date<'$last_3day'";
$result = mysql_query($query_del);