Introduzione
Gli indexer di Magento 2 trasformano dati raw (prodotti, prezzi, stock, regole) in tabelle ottimizzate per la lettura frontend. Una loro configurazione errata e' causa principale di lentezza e dati non aggiornati nello store.
Indexer principali
- design_config_grid: configurazioni design.
- customer_grid: griglia clienti adminhtml.
- catalog_category_product: relazione categoria-prodotto.
- catalog_product_category: relazione inversa.
- catalog_product_price: prezzi finali (tier, special, regole).
- catalog_product_attribute: attributi filtrabili.
- cataloginventory_stock: stato stock.
- catalogrule_product: regole catalogo.
- catalogsearch_fulltext: indice ricerca Elasticsearch.
Modalita' Update on Save vs Update by Schedule
Update on Save aggiorna l'indice ad ogni salvataggio: comodo in piccoli store, ma rallenta enormemente l'admin con migliaia di prodotti. Update by Schedule (consigliato) utilizza tabelle changelog e cron per aggiornare in batch ogni minuto.
Comandi indexer
Mostrare stato: php bin/magento indexer:status. Cambiare modalita': php bin/magento indexer:set-mode schedule. Reindicizzazione totale: php bin/magento indexer:reindex. Singolo: php bin/magento indexer:reindex catalog_product_price.
Cron Magento
I tre job cron vanno schedulati come utente web ogni minuto:
* * * * * php /var/www/html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/var/log/magento.cron.log
* * * * * php /var/www/html/update/cron.php >> /var/www/html/var/log/update.cron.log
* * * * * php /var/www/html/bin/magento setup:cron:run >> /var/www/html/var/log/setup.cron.log
Ottimizzazioni
- Tabella mview_state troppo grande indica indexer Schedule bloccati o disallineati.
- Eseguire indexer:reset se l'indice e' inconsistente.
- Per shop con molti prodotti, eseguire reindex notturni in fascia oraria di basso traffico.
- Aumentare memory_limit PHP a 4G durante reindex pesanti.
Hai bisogno di aiuto?
Se vuoi un Magento ottimizzato dal team di G Tech Group, scrivici tramite il modulo di contatto.