Added “optimize” action to optimize every table in the db

This commit is contained in:
pezcurrel 2022-11-09 14:44:21 +01:00
parent d4de4675ec
commit e7ec2eba39

View file

@ -23,6 +23,7 @@ $opts=array(
'setblack'=>false, 'setblack'=>false,
'shuffle'=>false, 'shuffle'=>false,
'updstats'=>false, 'updstats'=>false,
'optimize'=>false,
'deadline'=>60*24*60*60,// se un'istanza non risponde da 60 giorni dichiararla morta 'deadline'=>60*24*60*60,// se un'istanza non risponde da 60 giorni dichiararla morta
'newline'=>30*24*60*60,// se un'istanza è nuova, dopo 30 giorni non lo è più 'newline'=>30*24*60*60,// se un'istanza è nuova, dopo 30 giorni non lo è più
); );
@ -42,6 +43,8 @@ $help='mustool.php
Randomizza la lista delle istanze (i valori della colonna RPos). Randomizza la lista delle istanze (i valori della colonna RPos).
updstats updstats
Aggiorna le statistiche sul sito. Aggiorna le statistiche sul sito.
optimize
Ottimizza le tabelle del database.
OPZIONI OPZIONI
-h, --help -h, --help
Mostra questo aiuto ed esce. Mostra questo aiuto ed esce.
@ -75,6 +78,9 @@ for ($i=1; $i<$argc; $i++) {
} elseif ($argv[$i]=='updstats') { } elseif ($argv[$i]=='updstats') {
$dosome=true; $dosome=true;
$opts['updstats']=true; $opts['updstats']=true;
} elseif ($argv[$i]=='optimize') {
$dosome=true;
$opts['optimize']=true;
} else { } else {
mexit('«'.$argv[$i].'» non è unazione conosciuta (usa «-h» per vedere la guida).'.N,1); mexit('«'.$argv[$i].'» non è unazione conosciuta (usa «-h» per vedere la guida).'.N,1);
} }
@ -197,8 +203,27 @@ if ($opts['updstats']) {
echo('fatto! (righe inserite: '.$inserts.')'.N); echo('fatto! (righe inserite: '.$inserts.')'.N);
} }
if ($opts['optimize']) {
echo('Ottimizzo le tabelle del database...'.N);
$res=mysqli_query($link,'SHOW TABLES') or mexit(__LINE__.': '.mysqli_error($link).N,2);
while ($row=mysqli_fetch_row($res)) {
$rres=mysqli_query($link,'OPTIMIZE TABLE '.$row[0]) or mexit(__LINE__.': '.mysqli_error($link).N,2);
$rrow=mysqli_fetch_assoc($rres);
if ($rrow['Msg_type']=='error' || $rrow['Msg_type']=='warning')
fwrite(STDERR,kimplode($rrow).N);
}
echo('Fatto!'.N);
}
mysqli_close($link); mysqli_close($link);
exit(0); exit(0);
function kimplode(&$arr) {
$buf=[];
foreach ($arr as $key=>$val)
$buf[]=$key.': '.$val;
return(implode('; ',$buf));
}
?> ?>