Infocurci - programmatore Php Roma
Infocurci - programmatore Php Roma
Questo sito non lascia nessun cookie sul vostro pc, consuma pochissimi kb, non profila nulla e non raccoglie dati personali. Siete i benvenuti.

Magento : Quali sono le tabelle critiche per le prestazioni?

Delle centinaia di tabelle di Magento, quali sono quelle da tenere sott'occhio per evitare che l'inevitabile crescita di dati faccia lievitare il consumo di risorse fino a rallentare il nostro sito? Vediamo le tabelle da monitorare con una certa periodicità e come liberare lo spazio superfluo.

Magento

Lanciare htop da shell e vedere il database occupare 120M, sotto la colonna "RES". Aprire il phpmyadmin per un'apparentemente innocua operazione di routine e vedere schizzzare questo valore a 180M, in pochi secondi, solo per aver aperto l'elenco delle tabelle. Nella vita di uno store Magento capita anche questo... Quali sono allora le tabelle più critiche, quelle da tenere sott'occhio e possibilmente svuotare di tanto in tanto per evitare che il database lieviti fino a raggiungere dimensioni inopportune?

Iniziamo dalla tabella core_session. Se l'installazione di Magento vi è servita per gestire un unico negozio, potete evitare di salvare le sessioni nel database ed utilizzare i file di testo. Modificate il parametro

<session_save><![CDATA[db]]></session_save>

in

<session_save><![CDATA[files]]></session_save>

nel file app/etc/local.xml. Dopo questa operazione cancellate la cache di Magento. Potete svuotare la tabella core_session, visto che ora userete il filesystem.

Le svariate tabelle di log vanno svuotate di tanto in tanto. Ecco l'elenco:

  • log_customer
  • log_visitor
  • log_visitor_info
  • log_url_table
  • log_url_info_table
  • log_quote_table
  • report_viewed_product_index
  • report_compared_product_index
  • report_event
  • catalog_compare_item

Non è necessario procedere manualmente; Magento offre un comodo script richiamabile anche da shell con questa sintassi

php -f <path magento>shell/log.php clean

a cui potete aggiungere il parametro days (php -f ./shell/log.php clean --days 15) per settare il numero di giorni di intervallo, cosi da non eliminare tutti i dati.