Wann sollte ich die Option "Flachtisch" verwenden?

16

Als Antwort auf eine frühere Frage würde ich gerne wissen:

Wann sollte ich die Option "Flachtisch" verwenden?

Beim googeln habe ich einen Rat gefunden, um es zu aktivieren " wenn Sie sehr viele Kategorien haben ". Aber was ist viel ?

Ich kann leicht verstehen, dass das Aktivieren von Flat Tables für Produkte eine gute Entscheidung für die Leistung ist, aber ist es für Kataloge wirklich genauso wichtig?

Und welche Implikationen ergeben sich daraus? Ich habe gerade erfahren, dass das Aktivieren von flachen Kategorietabellen dazu führt, dass Produktpositionen von Kategorien nicht gespeichert werden können. Zumindest nicht so einfach wie ohne die Flat-Option (Danke an Marius für deine Hilfe). Gibt es noch andere erwähnenswerte Dinge?

Danke im Voraus :)

Zellbewohner
quelle

Antworten:

10

Wenn Sie PHPMyAdmin auf Ihrem Server installiert haben, können Sie sich die Tabellen von Magento ansehen. Du wirst sehen, dass es eine Menge gibt, die mit catalog_product_...und beginnen catalog_category_....

All dies wird für jedes Produkt und jede Kategorie verwendet, sodass für jede aufgerufene Seite eine Menge komplizierter und schwerer Anfragen anfallen.

Um MySQL zu entlasten und Ihren Shop zu beschleunigen, bietet Magento flache Tische an. Zum Beispiel catalog_product_flat_1. Wenn Sie sich die Struktur dieser Tabelle ansehen, werden Sie feststellen, dass sie viele grundlegende Produktdaten enthält. Dies bedeutet, dass beispielsweise in der Kategorie Produktliste nur eine Abfrage für diese Tabelle ausgeführt werden muss, anstatt die abzufragen mehrere andere Tabellen mit den Attributdaten.

Diese Daten werden jedoch aus den Daten in den anderen Tabellen aggregiert. Dies bedeutet, dass jedes Mal, wenn Sie ein Produkt speichern, mehrere indexes( System > Configuration > Index Management) aktualisiert werden, um diese Produktdaten zu kompilieren. In einigen Fällen, wie zum Beispiel bei der Entwicklung, kann dies unnötig sein. Sie möchten alle Änderungen sofort sehen, obwohl das Laden der Seite eine Weile dauern kann.

Wenn Sie also ein Geschäft für die Öffentlichkeit eröffnen, schalten Sie es ein und versuchen Sie beim Programmieren nicht, vollständige Produkt- oder Katalogobjekte zu verwenden, sondern verwenden Sie stattdessen die Daten aus den flachen Indizes.

Sander Mangel
quelle
Ich denke, ich würde in einer produktiven Umgebung immer flache Produkttabellen aktivieren. Aber ich war mir bei den flachen Kategorietabellen nicht so sicher. Sie sagen also, Sie würden immer beide aktivieren? Unabhängig davon, wie viele Kataloge Sie haben?
Celldweller
Aktivieren Sie sie immer, je mehr Kategorien, desto größer ist natürlich der Vorteil, aber selbst wenn Sie nur 10 Kategorien haben, werden dennoch einige Abfragen gespeichert.
Sander Mangel
4
Sie sollten immer flache Katalogentitäten aktivieren, aber theoretisch gibt es einen Fall, in dem dies nicht funktioniert. Dies passiert, wenn Sie zu viele Attribute in der Produktliste verwenden und die maximale Zeilenanzahl von mysql überschreiten. Ich habe es schon einmal gesehen. Sie brauchen sich keine großen Sorgen zu machen, aber wenn es passiert, wissen Sie warum.
Marius
@ Celldweller können wir weitere Informationen zu Ihrer Frage zur Verfügung stellen?
Sander Mangel
0

Wenn Sie über viele Kategorien oder viele benutzerdefinierte Attribute für Kategorien verfügen, ist dies aufgrund der geringeren Komplexität der Abfrage eine gute Wahl. Denken Sie daran, dass schwere Lasten noch mehr davon profitieren. Der Hauptnachteil ist, dass Kategorien und flat_categories eine sehr unterschiedliche Oberfläche verwenden, sodass Code bei aktivierten flat-Kategorien häufig sehr vorsichtig sein muss.

Nils Preuß
quelle
Da sind sie wieder. Viel und viele. ;-) Also würdest du auch sagen "Kommt drauf an"? Würden Sie flache Kategorietabellen aktivieren, wenn Sie 10 Kataloge haben? Oder 50? Kann man überhaupt eine Linie ziehen?
Celldweller
Sie müssen wissen, in welchen Fällen beispielsweise Codeänderungen vorgenommen werden müssen, während der flache Katalog aktiviert wird.
Anurag Khandelwal