Anteriormente he comentado algunos articulos para optimizar un poco Magento pero que ocurre con nuestra BD ahora mismo sin mucha historia la actual BD tiene unos 300Mb aproximadamente de tamaño, si la exporto y la edito veo que la mayoria de los registros vienen por las tablas
log_url_info
log_url
log_visitor
Asi que investigando un poco leo que se pueden truncar sin problemas se pueden ir limpiando y ademas es optimo, pero en el foro de magento encuentro este excepcional programa para poder hacer un cron de optimizacion, yo aconsejo no poner los mismos nombres ni variables por el tema de seguridad
El modulo en php contiene el siguiente codigo.
-
<?php
-
$xml = simplexml_load_file(‘./app/etc/local.xml’, NULL, LIBXML_NOCDATA);
-
$db[‘host’] = $xml->global->resources->default_setup->connection->host;
-
$db[‘name’] = $xml->global->resources->default_setup->connection->dbname;
-
$db[‘user’] = $xml->global->resources->default_setup->connection->username;
-
$db[‘pass’] = $xml->global->resources->default_setup->connection->password;
-
$db[‘pref’] = $xml->global->resources->db->table_prefix;
-
if($_GET[‘clean’] == ‘log’) clean_log_tables();
-
if($_GET[‘clean’] == ‘var’) clean_var_directory();
-
function clean_log_tables() {
-
global $db;
-
$tables = array(
-
‘dataflow_batch_export’,
-
‘dataflow_batch_import’,
-
‘log_customer’,
-
‘log_quote’,
-
‘log_summary’,
-
‘log_summary_type’,
-
‘log_url’,
-
‘log_url_info’,
-
‘log_visitor’,
-
‘log_visitor_info’,
-
‘log_visitor_online’,
-
‘report_event’
-
);
-
mysql_connect($db[‘host’], $db[‘user’], $db[‘pass’]) or die(mysql_error());
-
mysql_select_db($db[‘name’]) or die(mysql_error());
-
foreach($tables as $v => $k) {
-
mysql_query(‘TRUNCATE `’.$db[‘pref’].$k.’`’) or die(mysql_error());
-
}
-
}
-
function clean_var_directory() {
-
$dirs = array(
-
‘downloader/pearlib/cache/*’,
-
‘downloader/pearlib/download/*’,
-
‘var/cache/’,
-
‘var/log/’,
-
‘var/report/’,
-
‘var/session/’,
-
‘var/tmp/’
-
);
-
foreach($dirs as $v => $k) {
-
exec(‘rm -rf ‘.$k);
-
}
-
}
-
?>
Lo llamamos cleanup.php aconsejan ponerlo en el raiz yo lo he colocado en alguna carpeta como app que este oculto.
Ahora aconsejan programa un cron haciendo uso de curl para llamar a la url pasandole las variables por get es decir en la misma url
curl -s -o /dev/null http://www.domain.com/cleanup.php?clean=logcurl -s -o /dev/null http://www.domain.com/cleanup.php?clean=var
Si quereis lanzarlo manualmente llamar directamente a la URLhttp://www.domain.com/cleanup.php?clean=var
Visto en Magento CommerCe