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.
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.