Mécanique des nouvelles tables du journal des modifications (ex: catalog_category_product_cat_cl)

15

Je viens de repérer les tables mentionnées dans la base de données. Je pense qu'ils sont nouveaux dans Magento EE 1.13 et pourraient être liés à la nouvelle indexation.

+ ---------------------------------------- +
| catalog_category_flat_cl |
| catalog_category_product_cat_cl |
| catalog_category_product_index_cl |
| catalog_product_flat_cl |
| catalog_product_index_price_cl |
| cataloginventory_stock_status_cl |
| catalogsearch_fulltext_cl |
| enterprise_url_rewrite_category_cl |
| enterprise_url_rewrite_product_cl |
| enterprise_url_rewrite_redirect_cl |
+ ---------------------------------------- +

Comment fonctionnent ces tables? Quel est le but?

Sont-ils nettoyés automatiquement après un certain temps?

Est-il judicieux d'inclure ces tables dans les sauvegardes?

Alex
la source

Réponses:

15

Ces _cltables de changelog (d'où le suffixe) sont remplies via des déclencheurs MySQL chaque fois qu'une entité spécifique est modifiée.
Ensuite, le travail cron de l'indexeur (exécuté toutes les minutes) appliquera ces journaux des modifications en tant que mises à jour incrémentielles aux index Magento.

L'avantage d'utiliser des déclencheurs MySQL pour remplir les tables du journal des modifications est qu'il fonctionne même si de nouvelles données sont ajoutées en utilisant du SQL simple, sans impliquer PHP.
Cela élimine la nécessité d'exécuter une réindexation complète si vous utilisez une méthode d'importation non standard (ou même le module Mage_ImportExport).

Vinai
la source
Est-il sécuritaire de tronquer ces tables de temps en temps? Actuellement à 25m de records.
Steve Robbins
Pas certain. Le problème est que Magento peut dépendre de la version stockée dans cette table. Je pense qu'il est sûr de tout supprimer sauf la dernière version, mais faites-le à vos risques. Peut-être que même tronquer est sûr - je ne sais pas.
Vinai
5
Le module Enterprise_Mview a déjà la capacité de nettoyer ces tables. Il prend le dernier version_id de chaque table enterprise_mview_metadataet supprime toutes les lignes avec un version_id inférieur à celui-ci. Vous pouvez activer le nettoyage d'index en accédant à Système> Configuration> (section AVANCÉE)> Gestion de l'index et en définissant Activer le nettoyage programmé sur Oui sous Planification de nettoyage d'index.
Tyler V.