Mechanik der neuen Changelog-Tabellen (zB: catalog_category_product_cat_cl)

15

Ich habe gerade die erwähnten Tabellen in der Datenbank entdeckt. Ich denke, sie sind neu in Magento EE 1.13 und könnten mit der neuen Indizierung zusammenhängen.

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

Wie funktionieren diese Tabellen? Was ist der Zweck?

Werden sie nach einiger Zeit automatisch gereinigt?

Ist es sinnvoll, diese Tabellen in Sicherungen einzubeziehen?

Alex
quelle

Antworten:

15

Diese Changelog- _clTabellen (daher das Suffix) werden bei jeder Änderung einer bestimmten Entität über MySQL-Trigger gefüllt.
Dann wendet der Indexer-Cron-Job (der jede Minute ausgeführt wird) diese Änderungsprotokolle als inkrementelle Aktualisierungen auf die Magento-Indizes an.

Der Vorteil der Verwendung von MySQL-Triggern zum Füllen der Changelog-Tabellen besteht darin, dass sie auch dann funktionieren, wenn neue Daten mit einfachem SQL hinzugefügt werden, ohne dass PHP beteiligt ist.
Dadurch entfällt die Notwendigkeit, einen vollständigen Neuindex auszuführen, wenn Sie eine nicht standardmäßige Importmethode (oder sogar das Modul Mage_ImportExport) verwenden.

Vinai
quelle
Ist es sicher, diese Tabellen von Zeit zu Zeit abzuschneiden? Derzeit bei 25m Aufzeichnungen.
Steve Robbins
Nicht sicher. Das Problem ist, dass Magento möglicherweise von der in dieser Tabelle gespeicherten Version abhängt. Ich würde voraussetzen, dass es sicher ist, alle außer der neuesten Version zu löschen, aber dies geschieht auf Ihr Risiko. Vielleicht ist sogar das Abschneiden sicher - ich weiß es nicht.
Vinai
5
Das Enterprise_Mview-Modul kann diese Tabellen bereits bereinigen. Es entnimmt die neueste version_id für jede Tabelle enterprise_mview_metadataund löscht alle Zeilen mit einer niedrigeren version_id. Sie können die Indexbereinigung aktivieren, indem Sie zu System> Konfiguration> (Abschnitt ERWEITERT)> Indexverwaltung wechseln und Geplante Bereinigung aktivieren unter Zeitplan für Indexbereinigung auf Ja setzen.
Tyler V.