Nachdem ich einen Unterschied zwischen den Tabellen von einem Produktionsserver zu einem lokalen Server gemacht habe, habe ich festgestellt, dass neue Tabellen erstellt wurden, die alle mit enden _cl
. Diese sind:
# TABLE: catalog_category_product_cl
# TABLE: cataloginventory_stock_cl
# TABLE: catalog_product_price_cl
# TABLE: catalog_product_category_cl
# TABLE: customer_dummy_cl
# TABLE: catalogrule_product_cl
# TABLE: catalog_product_attribute_cl
# TABLE: catalogsearch_fulltext_cl
# TABLE: design_config_dummy_cl
# TABLE: catalogrule_rule_cl
Da diese alle mit Indizes in Magento zusammenhängen, gehe ich davon aus, dass es sich um "Änderungsprotokolle" oder ähnliches handelt (wenn dies bestätigt werden könnte, würde ich es begrüßen!).
Ich habe eine zweiteilige Frage dazu: Wie werden diese Tabellen gefüllt und wie oft / wie werden diese Tabellen gereinigt ?
Jede Hilfe hierzu wäre sehr dankbar.
Antworten:
Diese Tabellen beziehen sich auf MView von Magento 2. Es ist der Indexer, der standardmäßig jede Minute in cron ausgeführt wird. MView wird verwendet, wenn Sie den Indexermodus auf "Nach Zeitplan indizieren" setzen.
Magento prüft, ob die
_cl
Tabellen vorhanden sind. Wenn nicht, werden sie bei jeder Ausführung des Indexers / MView erstellt. Der Code für diese Tabellenerstellung befindet sich in\Magento\Framework\Mview\View::subscribe()
.Das Einfügen in diese Tabellen erfolgt durch MySQL-Trigger. Alle Trigger in der Magento 2-Datenbank werden zum Aktualisieren von
_cl
Tabellen verwendet :SHOW TRIGGERS
. Wenn der Administrator den Preis des Produkts ändert, werden Zeilen in einige der Tabellen eingefügt. Wenn cron nach 1 Minute ausgeführt wird, wird für jeden beteiligten Indexer eine Indizierung dieser Entitäten ausgelöst. Wenn nach jedem Indexerlauf betroffene Entitäten / Cache-Tags (catalog_product_123) vorhanden sind, wird eine vollständige Bereinigung des Cache / Lacktyps ausgelöst._cl
Tabellenzeilen werden wie jede Stunde gelöscht, wenn sie alt sind. Dafür gibt es einen Cron-Job.Überprüfen Sie Folgendes : Was ist mview in magento2?
EDIT Auch zurückgesetzt version_id zu
0
inmview_state
Tabelle. Sonst wird es nicht indizieren , bis ids in*_cl
Tabellen , die Reichweiteversion_id
inmview_state
.Möglicherweise gibt es mehr
*_cl
Tabellen als diese:quelle
*_cl
Tabellen abschneiden und auchversion_id
inmview_state
Tabellen zurücksetzen . In Magento 1 EE sollte es dasselbe sein. Ich weiß nicht, wo Magento 1 die aktuelle oder letzte Versions-ID speichert. Ich werde meine Antwort aktualisieren.catalog_category_flat_cl
&catalog_product_flat_cl
. Außerdem konnte ich die folgenden Tabellen in unserer Magento 2.3.2-Installation nicht finden :salesrule_rule_cl
,targetrule_product_rule_cl
&targetrule_rule_product_cl
.