public static function DbHandler::optimizeTables in DB Maintenance 7.2
Same name and namespace in other branches
- 8 src/Module/Db/DbHandler.php \Drupal\db_maintenance\Module\Db\DbHandler::optimizeTables()
- 2.0.x src/Module/Db/DbHandler.php \Drupal\db_maintenance\Module\Db\DbHandler::optimizeTables()
Performs the maintenance.
2 calls to DbHandler::optimizeTables()
- CommonHookHandler::hookCron in src/
Module/ Hook/ CommonHookHandler.php - Implements hook_cron().
- db_maintenance_optimize_tables_page in ./
db_maintenance.module - Callback page for manually optimizing tables.
File
- src/
Module/ Db/ DbHandler.php, line 22 - DbHandler class.
Class
- DbHandler
- DbHandler class.
Namespace
Drupal\db_maintenance\Module\DbCode
public static function optimizeTables() {
global $databases;
foreach ($databases as $db => $connection) {
$db_name = $connection['default']['database'];
$all_tables = ConfigHandler::getProcessAllTables();
if ($all_tables) {
$config_tables = self::listTables($db);
}
else {
$config_tables = ConfigHandler::getTableList($db_name);
}
// Only proceed if tables are selected for this database.
if (is_array($config_tables) && count($config_tables) > 0) {
foreach ($config_tables as $key => $table_name) {
// Set the database to query.
$previous = db_set_active($db);
$table_clear = PrefixHandler::clearPrefix($table_name);
if (db_table_exists($table_clear)) {
$handler = DbServerHandlerFactory::getDbServerHandler();
$handler
->optimizeTable($table_clear);
}
else {
watchdog('db_maintenance', '@table table in @db database was configured to be optimized but does not exist.', array(
'@db' => $db_name,
'@table' => $table_name,
), WATCHDOG_NOTICE);
}
// Return to the previously set database.
db_set_active($previous);
watchdog('db_maintenance', 'Optimized @table table in @db database.', array(
'@db' => $db_name,
'@table' => $table_name,
), WATCHDOG_DEBUG);
}
if (ConfigHandler::getWriteLog()) {
$tables = implode(', ', $config_tables);
watchdog('db_maintenance', 'Optimized tables in @db database: @tables', array(
'@db' => $db_name,
'@tables' => $tables,
), WATCHDOG_INFO);
}
}
}
variable_set('db_maintenance_cron_last', REQUEST_TIME);
}