Magento 2: Les tables plates sont-elles toujours une chose?
17
Les tables plates sont-elles toujours une chose dont nous devons nous soucier dans Magento 2? Je sais qu'il y a une interface utilisateur où nous pouvons allumer les tables plates, mais je ne sais pas dans quelle mesure elles ont été testées, et si elles sont encore nécessaires.
Si les tables plates sont toujours une chose - où / quand les attributs des tables plates sont-ils générés et / ou régénérés. Cela se produit-il uniquement lors de la réindexation? Ou d'autres actions d'interface utilisateur peuvent-elles déclencher une génération de table plate? Cela se produit-il à php bin/magento setup:di:compile? D'autres lieux?
Aussi - comment Magento décide-t-il s'il doit faire d'un attribut un attribut plat? Tous les attributs EAV sont- ils aplatis? Ou y en a-t-il d'autres qui pourraient ne pas l'être?
Oui, les tables plates sont toujours une chose. Vous pouvez activer des tables plates pour les produits et catégories à partir des magasins-> configuration-> catalogue-> vitrine.
Pourquoi avons-nous besoin de tables plates?
Ils offrent une amélioration significative des performances pour les données de catalogue volumineuses. Un de nos clients n'a que 5 catégories et environ 250 produits, peu importe que vous ayez ou non à plat. Cela a vraiment compté lorsque nous l'avons allumé pour un autre magasin qui comptait 800 catégories et 17 000 produits et 5 magasins multiples. L'amélioration des performances devient apparente lorsque vous commencez à remarquer ce qui se passe dans la base de données. Voici à quoi ressemble la base de données lorsque vous avez plusieurs sites Web.
Le point étant les jointures deviennent très coûteuses avec l'augmentation de la taille des tables même avec des index. Les tables plates RÉDUISENT (n'éliminent pas) les JOINTS.
Quand sont-ils créés ou mis à jour
Les tables plates sont régénérées lorsque vous effectuez une réindexation complète avec bin/magento indexer:reindex. Ils sont mis à jour lors de la mise à jour du produit ou de la catégorie. Seules les lignes pertinentes sont mises à jour.
Les tables plates ne sont pas générées sur setup:di:compile
** Quels attributs entrent dans les tables plates? (et certaines limitations) **
La réponse courte est tous les attributs qui vont être utilisés dans la liste des produits (liste + navigation en couches). Les paramètres d'une devanture de magasin d'attributs décident si l'attribut doit être inclus ou non dans les tableaux plats
Tous les attributs ne sont pas aplatis en raison des limitations que je mentionne ci-dessous.
Limitation de la table plate
Enfin, il y a une limitation pour ces tables plates qui est imposée par mysql. Il y a des limites de taille de ligne et de colonne sur la table. Vous pouvez en savoir plus à ce sujet sur les limites des tables mysql
Vous trouverez ce <max_index_count>64</max_index_count>nœud intéressant dans config.xml du module-catalogue.
qu'en est-il des commandes forfaitaires? L'option de faire des commandes forfaitaires n'est pas à côté de celles des catégories et des produits
ahnbizcad
Est-il possible de DROPcréer une table plate et de la laisser ensuite créer avec indexer:reindex? par exemple au cas où l'une des tables s'écraserait au-delà de toute réparation.
fritzmg
Les commandes @ahnbizcad sont déjà stables. table sales_order.
Starting with Magento 2.3.0+, the use of a flat catalog is no longer a best practice and is not recommended. Continued use of this feature is known to cause performance degradation and other indexing issues
DROP
créer une table plate et de la laisser ensuite créer avecindexer:reindex
? par exemple au cas où l'une des tables s'écraserait au-delà de toute réparation.Basé sur la documentation de magento pour la table plate mentionnée dans https://docs.magento.com/m2/ce/user_guide/catalog/catalog-flat.html
Starting with Magento 2.3.0+, the use of a flat catalog is no longer a best practice and is not recommended. Continued use of this feature is known to cause performance degradation and other indexing issues
la source
Les tables plates ne sont plus rien Il n'ajoute aucune amélioration de performances et serait déconseillé dans les prochaines versions
la source