From e7ec2eba39aec26637a38ad792c915bc26dc9bfb Mon Sep 17 00:00:00 2001 From: pezcurrel Date: Wed, 9 Nov 2022 14:44:21 +0100 Subject: [PATCH] =?UTF-8?q?Added=20=E2=80=9Coptimize=E2=80=9D=20action=20t?= =?UTF-8?q?o=20optimize=20every=20table=20in=20the=20db?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/clitools/mustool.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/web/clitools/mustool.php b/web/clitools/mustool.php index c19e63d..0baf29c 100755 --- a/web/clitools/mustool.php +++ b/web/clitools/mustool.php @@ -23,6 +23,7 @@ $opts=array( 'setblack'=>false, 'shuffle'=>false, 'updstats'=>false, + 'optimize'=>false, '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ù ); @@ -42,6 +43,8 @@ $help='mustool.php Randomizza la lista delle istanze (i valori della colonna RPos). updstats Aggiorna le statistiche sul sito. + optimize + Ottimizza le tabelle del database. OPZIONI -h, --help Mostra questo aiuto ed esce. @@ -75,6 +78,9 @@ for ($i=1; $i<$argc; $i++) { } elseif ($argv[$i]=='updstats') { $dosome=true; $opts['updstats']=true; + } elseif ($argv[$i]=='optimize') { + $dosome=true; + $opts['optimize']=true; } else { mexit('«'.$argv[$i].'» non è un’azione conosciuta (usa «-h» per vedere la guida).'.N,1); } @@ -197,8 +203,27 @@ if ($opts['updstats']) { 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); exit(0); +function kimplode(&$arr) { + $buf=[]; + foreach ($arr as $key=>$val) + $buf[]=$key.': '.$val; + return(implode('; ',$buf)); +} + ?>