Warum und wann wird der "flache Katalog" verwendet?

24

Während ich ein bisschen nach dem Thema Geschwindigkeit auf der Magento-Website gesucht habe, habe ich einige Links erhalten, auf denen laut Angaben "Flat Catalog" aktiviert ist , um die Leistung und Geschwindigkeit zu steigern.

Problem ist, dass, warum es nicht standardmäßig aktiviert ist, Geschwindigkeit ist Problem.

Wird die Aktivierung von "Flat Catalog" auch negative Auswirkungen haben?

Meine Magento-Website hatte 100 Produkte und 500 gebündelte Produkte und die Geschwindigkeit ist ziemlich problematisch, da ich 36 Produkte auf einmal lade.

Behebt die Aktivierung von "Flat Catalog" mein Problem?

Entwickler
quelle

Antworten:

35

Der Unterschied zwischen dem EAV- Katalog und dem Flat- Katalog ist wie folgt:

1. EAV-Katalog

EAV ist ein Datenbankmodell für Entitätsattributwerte, bei dem die Daten vollständig normalisiert sind. Jeder Spaltendatenwert wird in der jeweiligen Datentypentabelle gespeichert. Beispiel für ein Produkt

Produkt-ID ist in der catalog_product_entity_intTabelle gespeichert ,

Produktname in catalog_product_entity_varcharTabelle,

Produktpreis in catalog_product_entity_decimalTabelle,

Produkterstellungsdatum in catalog_product_entity_datetimeTabelle,

Produktbeschreibung in catalog_product_entity_textTabelle.

EAV ist komplex, da es 5-6 Tabellen verknüpft, auch wenn Sie nur die Details eines Produkts abrufen möchten.

Spalten werden in EAV Attribute genannt.

2. Flacher Katalog

Das flache Modell verwendet nur eine Tabelle, ist also nicht normalisiert und verwendet mehr Datenbankspeicher. Es löscht den EAV-Overhead,

Wenn es um die Leistung geht, ist dies gut, da nur eine Abfrage erforderlich ist, um das gesamte Produkt zu laden, anstatt 5-6 Tabellen zu verknüpfen, um nur die Details eines Produkts abzurufen.

Spalten werden im flachen Modell als Felder bezeichnet.

Magento implementierte Indexer, die regelmäßig die Standardsammlungen abfragen und flache Datenbanktabellen in folgendem Format füllen. Wobei * die Geschäfts-ID ist.

catalog_category_flat_store_*
catalog_product_flat_*

Diese Tabellen enthalten nicht normalisierte Produkt- und Kategoriedaten, die nur zum Lesen bestimmt sind. Dies ermöglicht es Magento, Kategorie- und Produktdaten in einer einzigen Abfrage abzurufen.


Sie können den flachen Katalog aktivieren, indem Sie zu navigieren System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Setzen Sie dies auf Ja.

Wenn Sie ein neues Attribut zur EAV-Tabelle für den Katalog hinzufügen. Vergessen Sie dann nicht, die Neuindizierung durchzuführen (System > Configuration > Index Management). Durch die erneute Indizierung werden Ihre flachen Katalogtabellen aktualisiert.

Weitere Informationen finden Sie unter "EAV" und "Flat Catalog" in Magento

Rohit Kundale
quelle
ok 1: kann ich jederzeit zwischen flat to eav und eav to flat wechseln? 2: Können dynamische Spalten auch bei Verwendung von flat hinzugefügt werden?
mdeveloper
Ja, Sie können zwischen ihnen wechseln. Sie können auch dynamische Spalten hinzufügen.
Stellen
@RohitKundale: Wenn Sie Flat Catalog für Produkte aktivieren, denen viele Attribute fehlen, werden für Produkte nicht viele Funktionen angezeigt. Ich habe auch neu indiziert. Warum indizieren nicht alle Attribute für dynamische Spalten, während der flache Katalog aktiviert ist?
Anurag Khandelwal
2
@AnuragKhandelwal Überprüfen Sie hier
Rohit Kundale
Dies sollte das erste sein, was sie mir gezeigt haben, als ich mit Magento anfing.
Domino
5

Magento verwendet das Entity-Attribute-Value (EAV) -Modell zum Speichern von Kunden-, Produkt- und Kategoriedaten in seiner Datenbank. Obwohl Sie mit dem EAV-Modell vollständig erweiterbare Attribute für diese Objekte haben können, werden Objektattribute in mehreren Tabellen und nicht in einer sehr großen Tabelle gespeichert.

Da Attribute in vielen Tabellen gespeichert sind - und dies schließt Kopien einiger der gleichen Attribute ein - können SQL-Abfragen lang und komplex sein. Mit der Funktion für flache Kataloge werden sofort neue Tabellen erstellt, in denen jede Zeile alle erforderlichen Daten zu einem Produkt oder einer Kategorie enthält.

In früheren Versionen von Magento musste der flache Katalog jedes Mal neu erstellt werden, wenn Sie Änderungen an Produktattributen oder Produktkategoriezuordnungen vorgenommen haben. In dieser Version wird der Flat-Katalog für Sie aktualisiert - entweder jede Minute oder entsprechend Ihrem Magento-Cron-Job.

Flat-Katalog-Optionen aktivieren nicht nur die Flat-Katalog- und Flat-Produkt-Indexer, sondern auch die Indexierung für Katalog- und Warenkorb-Preisregeln. Wenn Sie über eine große Anzahl von Artikelnummern (500.000 oder mehr) verfügen, kann Magento die Preisregeln für Kataloge und Warenkörbe schnell indizieren, wenn Sie die Produktoption für flache Kataloge aktivieren.

Arunendra
quelle
In dieser Version wird der Flat-Katalog für Sie aktualisiert - entweder jede Minute oder entsprechend Ihrem Magento-Cron-Job.
Welche
Entschuldigung, ich
verstehe
In Ihrer Wahl haben Sie die aktuelle Version als 1.9 bezeichnet. oder magento 2
mdeveloper
1
Es hängt von Ihnen ab, welche Version für Sie geeignet ist. Magento 2 hat mehr Vorteil.
Arunendra
1
@Arunendra mdeveloper fragt, auf welche Version von Magento Sie sich beziehen, wenn Sie sagen: "In dieser Version wird der Flat-Katalog für Sie aktualisiert". Um welche Veröffentlichung handelt es sich? Aktualisiert Magento 1.9 es für uns? Geht es nur in Magento 2? In welcher Magento-Version wurde diese Version für uns aktualisiert?
Olivier
1

Flache Kategorien werden auch in Magento 1.9.2 nicht automatisch aktualisiert. Ich habe 1.9.3 nicht überprüft, da ich Indizes nach Massenaktualisierungen (z. B. Lagerbestand) immer manuell neu erstelle.

Steve Holdoway
quelle