Quand dois-je utiliser l'option de table plate de catégorie?


16

Pour faire suite à une question précédente, je voudrais savoir:

Quand dois-je utiliser l'option de table plate de catégorie?

En cherchant sur Google, j'ai trouvé un conseil pour l'activer " quand vous avez beaucoup de catégories ". Mais qu'est-ce que c'est beaucoup ?

Je peux facilement comprendre que l'activation des tables plates pour les produits est une bonne décision en termes de performances, mais est-ce vraiment aussi important pour les catalogues?

Et quelles implications en découlent? Je viens d'apprendre que l'activation des tableaux de catégories plats empêche de sauvegarder les positions de produits de catégorie. Du moins pas aussi facile que sans l'option plate (merci à Marius pour votre aide). Y a-t-il d'autres choses mentionnables?

Merci d'avance :)

Réponses:


10

Si PHPMyAdmin est installé sur votre serveur, vous pouvez consulter les tableaux de Magento. Vous verrez qu'il y a beaucoup de choses commençant par catalog_product_...et catalog_category_....

Tous ceux-ci sont utilisés pour chaque produit et catégorie, ce qui signifie beaucoup de requêtes compliquées et lourdes pour chaque page que vous appelez.

Pour alléger la charge sur MySQL et accélérer votre boutique, Magento propose des tables plates. Par exemple catalog_product_flat_1. Si vous regardez la structure de ce tableau, vous verrez qu'il contient de nombreuses données de base sur le produit, ce qui signifie que, par exemple, dans la liste des produits de la catégorie, une seule requête doit être exécutée sur ce tableau au lieu d'interroger le plusieurs autres tables contenant les données d'attribut.

Cependant, ces données sont agrégées à partir des données des autres tables, ce qui signifie que chaque fois que vous enregistrez un produit, plusieurs indexes( System > Configuration > Index Management) sont actualisés pour compiler ces données de produit. Dans certains cas, comme par exemple lors du développement, cela peut être inutile. Vous souhaitez voir toutes les modifications immédiatement, même si le temps de chargement de la page peut prendre un certain temps.

Donc, en conclusion, chaque fois que vous lancez une boutique au public, allumez-les et essayez de ne pas utiliser la totalité des produits ou des objets de catalogue lors de la programmation, mais utilisez plutôt les données fournies par les index plats.


Je pense que j'activerais toujours des tables de produits plates dans un environnement productif. Mais je n'étais pas si sûr des tables de catégorie plates. Vous dites donc que vous activeriez toujours les deux? Quel que soit le nombre de catalogues dont vous disposez?
Celldweller

Activez-les toujours, plus il y a de catégories, plus les avantages sont évidents, mais même lorsque vous n'avez que 10 catégories, cela enregistre toujours quelques requêtes.
Sander Mangel

4
Vous devez toujours activer les entités de catalogue plates, mais en théorie, il y a un cas où cela ne fonctionne pas. Cela se produit lorsque vous avez de nombreux attributs utilisés dans la liste des produits et que vous dépassez la limite de ligne max mysql. Je ne l'ai vu qu'une seule fois auparavant. Vous n'avez pas besoin de vous inquiéter beaucoup, mais au cas où cela se produirait, vous saurez pourquoi.
Marius

@Celldweller pouvons-nous fournir plus d'informations sur votre question?
Sander Mangel

0

Si vous avez beaucoup de catégories ou de nombreux attributs personnalisés pour les catégories, c'est un bon choix car la complexité des requêtes est réduite. Gardez à l'esprit que les charges lourdes en bénéficient encore plus. Le principal inconvénient est que les catégories et les flat_categories utilisent une interface très différente, si souvent le code doit être très prudent dans le cas des catégories plates activées.


Les revoilà. Beaucoup et beaucoup. ;-) Donc, vous diriez aussi "dépend de"? Souhaitez-vous activer les tableaux de catégories plats lorsque vous avez 10 catalogues? Ou 50? Est-il même possible de tracer une ligne?
Celldweller

Besoin de savoir quels sont les cas avec quelques exemples de modifications de code à prendre en charge tout en activant le catalogue plat.
Anurag Khandelwal
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.