function cleaner_optimize_table in Cleaner 6
1 call to cleaner_optimize_table()
- cleaner_cleaner_run in ./cleaner.module
- Implementation of hook_cleaner_run().
File
- ./cleaner.module, line 272
- Allows the admin to set a schedule for clearing caches and other stuff.
Code
function cleaner_optimize_table($opt = 0) {
global $db_type;
if (drupal_strtolower(drupal_substr($db_type, 0, 5)) == 'mysql') {
$result = db_query('SHOW TABLE STATUS');
$list = array();
while ($table = db_fetch_object($result)) {
if ($table->Data_free) {
$list[] = $table->Name;
}
}
$query = 'OPTIMIZE ' . ($opt == 2 ? 'LOCAL ' : '') . 'TABLE ' . '{' . implode('}, {', $list) . '}';
timer_start('cleaner_opt');
db_query($query);
$time = timer_read('cleaner_opt') / 1000;
watchdog('Cleaner', 'Optimized tables: !opts. This required !time seconds.', array(
'!opts' => implode(', ', $list),
'!time' => number_format($time, 3),
), WATCHDOG_INFO);
}
else {
watchdog('Cleaner', 'Database type (!type) not allowed to be optimized.', array(
'!type' => $db_type,
), WATCHDOG_ERROR);
}
return;
}