<?php require_once "config.php"; use newznab\db\Settings; $page = new AdminPage(); $db = new Settings(); $tablelist = $db->optimise(); $page->title = "DB Table Optimise"; $page->smarty->assign('tablelist', $tablelist); $page->content = $page->smarty->fetch('db-optimise.tpl'); $page->render();
<?php require_once "config.php"; use newznab\db\Settings; $force = isset($argv[1]) && $argv[1] == "true"; $db = new Settings(); $ret = $db->optimise($force); if (count($ret) > 0) { echo "Optmze : Optimised " . count($ret) . " tables\n"; } else { echo "Optmze : Nothing required optimisation." . (!$force ? " Try using force (optimise_db.php true)" : "") . "\n"; }
$runVar['commands']['_php'] = $show_time . " nice -n{$tmux_niceness} {$PHP}"; $runVar['commands']['_phpn'] = "nice -n{$tmux_niceness} {$PHP}"; $runVar['commands']['_python'] = $show_time . " nice -n{$tmux_niceness} {$PYTHON}"; $runVar['commands']['_sleep'] = "{$runVar['commands']['_phpn']} {$runVar['paths']['misc']}update_scripts/nix_scripts/tmux/bin/showsleep.php"; //spawn IRCScraper as soon as possible $tRun->runPane('scraper', $runVar); //get list of panes by name $runVar['panes'] = $tRun->getListOfPanes($runVar['constants']); //totals per category in db, results by parentid $catcntqry = "SELECT c.parentid AS parentid, COUNT(r.id) AS count FROM category c, releases r WHERE r.categoryid = c.id GROUP BY c.parentid"; //create timers and set to now $runVar['timers']['timer1'] = $runVar['timers']['timer2'] = $runVar['timers']['timer3'] = $runVar['timers']['timer4'] = $runVar['timers']['timer5'] = time(); $runVar['timers']['query']['tmux_time'] = $runVar['timers']['query']['split_time'] = $runVar['timers']['query']['init_time'] = $runVar['timers']['query']['proc1_time'] = $runVar['timers']['query']['proc2_time'] = $runVar['timers']['query']['proc3_time'] = $runVar['timers']['query']['split1_time'] = $runVar['timers']['query']['init1_time'] = $runVar['timers']['query']['proc11_time'] = $runVar['timers']['query']['proc21_time'] = $runVar['timers']['query']['proc31_time'] = $runVar['timers']['query']['tpg_time'] = $runVar['timers']['query']['tpg1_time'] = 0; // Analyze tables printf($pdo->log->info("\nAnalyzing your tables to refresh your indexes.")); $pdo->optimise(false, 'analyze', false, ['releases']); passthru('clear'); $runVar['settings']['monitor'] = 0; $runVar['counts']['iterations'] = 1; $runVar['modsettings']['fc']['firstrun'] = true; $runVar['modsettings']['fc']['num'] = 0; while ($runVar['counts']['iterations'] > 0) { //check the db connection if ($pdo->ping(true) == false) { unset($pdo); $pdo = new Settings(); } $timer01 = time(); // These queries are very fast, run every loop -- tmux and site settings $runVar['settings'] = $pdo->queryOneRow($tRun->getMonitorSettings(), false); $runVar['timers']['query']['tmux_time'] = time() - $timer01;
} } unset($value); $sql = "SHOW table status"; $tables = $pdo->query($sql); foreach ($tables as $row) { $tbl = $row['name']; if (preg_match('/binaries_\\d+/', $tbl) || preg_match('/parts_\\d+/', $tbl) || preg_match('/collections_\\d+/', $tbl) || preg_match('/partrepair_\\d+/', $tbl) || preg_match('/\\d+_binaries/', $tbl) || preg_match('/\\d+_collections/', $tbl) || preg_match('/\\d+_parts/', $tbl) || preg_match('/\\d+_partrepair_\\d+/', $tbl)) { $rel = $pdo->queryDirect(sprintf('DROP TABLE %s', $tbl)); if ($rel !== false) { echo $pdo->log->primary("Dropping {$tbl} completed."); } } } (new \SphinxSearch())->truncateRTIndex('releases_rt'); $pdo->optimise(false, 'full'); echo $pdo->log->header("Deleting nzbfiles subfolders."); try { $files = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($pdo->getSetting('nzbpath'), \RecursiveDirectoryIterator::SKIP_DOTS), \RecursiveIteratorIterator::CHILD_FIRST); foreach ($files as $file) { if (basename($file) != '.gitignore' && basename($file) != 'tmpunrar') { $todo = $file->isDir() ? 'rmdir' : 'unlink'; @$todo($file); } } } catch (UnexpectedValueException $e) { echo $pdo->log->error($e->getMessage()); } echo $pdo->log->header("Deleting all images, previews and samples that still remain."); try { $dirItr = new \RecursiveDirectoryIterator(NN_COVERS);