Pourquoi et quand utiliser "Flat Catalog"?


24

Tout en faisant des recherches sur le problème de vitesse du site Web de Magento, j'ai obtenu des liens où les gens disent activer "Flat Catalog" pour augmenter les performances et la vitesse.

Le problème est que la raison pour laquelle il n'est pas activé par défaut est la vitesse.

L'activation du "catalogue plat" aura-t-elle également un effet négatif?

Mon site Web magento avait 100 produits et 500 produits groupés et la vitesse est assez problématique car je charge 36 produits à la fois.

L'activation de "Flat Catalog" résoudra-t-elle mon problème?

Réponses:


35

La différence entre le catalogue EAV et le catalogue plat est la suivante:

1. Catalogue Eav

EAV est un modèle de base de données de valeurs d'attribut d'entité, dans lequel les données sont entièrement sous forme normalisée. Chaque valeur de données de colonne est stockée dans leur table de types de données respective. Exemple, pour un produit,

l'ID du produit est stocké dans la catalog_product_entity_inttable,

nom du produit dans le catalog_product_entity_varchartableau,

prix du produit dans le catalog_product_entity_decimaltableau,

date de création du produit dans le catalog_product_entity_datetimetableau,

description du produit dans le catalog_product_entity_texttableau.

L'EAV est complexe car il rejoint 5-6 tables même si vous souhaitez obtenir les détails d'un seul produit.

Les colonnes sont appelées attributs dans EAV.

2. Catalogue plat

Le modèle plat utilise une seule table, il n'est donc pas normalisé et utilise plus d'espace de base de données. Il efface les frais généraux de l'EAV,

C'est bon en termes de performances, car il ne faudra qu'une seule requête pour charger le produit entier au lieu de joindre 5-6 tables pour obtenir les détails d'un seul produit.

Les colonnes sont appelées champs dans le modèle plat.

Magento a implémenté des indexeurs qui interrogeront périodiquement les collections standard et rempliront les tables de base de données plates au format suivant. Où * est l'identifiant du magasin.

catalog_category_flat_store_*
catalog_product_flat_*

Ces tableaux contiennent des données de produit et de catégorie non normalisées destinées à être en lecture seule. Cela permet à Magento de récupérer les données de catégorie et de produit en une seule requête.


Vous pouvez activer le catalogue plat en accédant à System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Réglez ceci sur oui.

Si vous ajoutez un nouvel attribut dans la table EAV pour le catalogue. N'oubliez pas d'exécuter la réindexation (System > Configuration > Index Management). La réindexation actualise vos tables de catalogue plates.

Pour plus d'informations, veuillez consulter «EAV» et «Flat Catalog» dans Magento


ok 1: puis-je basculer entre plat à eav et eav à plat à tout moment? 2: des colonnes dynamiques peuvent-elles être ajoutées lors de l'utilisation de flat également?
mdeveloper

Oui, vous pouvez basculer entre eux. Vous pouvez également ajouter des colonnes dynamiques. Mais assurez-vous d'exécuter la réindexation après avoir ajouté un nouvel attribut à EAV
Rohit Kundale

@RohitKundale: Activation du catalogue plat pour le produit manquant de nombreux attributs et, par conséquent, je n'ai pas beaucoup de fonctionnalités affichées pour les produits. J'ai également réindexé. Pourquoi tous les attributs ne sont pas indexés pour les colonnes dynamiques tout en activant le catalogue plat?
Anurag Khandelwal

2
@AnuragKhandelwal Vérifiez ici
Rohit Kundale

Cela aurait dû être la première chose qu'ils m'ont montré lorsque j'ai commencé à utiliser magento.
Domino

5

Magento utilise le modèle Entity-Attribute-Value (EAV) pour stocker les données des clients, des produits et des catégories dans sa base de données. Bien que le modèle EAV vous permette d'avoir des attributs complètement extensibles pour ces objets, les attributs d'objet sont stockés dans plusieurs tables plutôt que dans une très grande table.

Étant donné que les attributs sont stockés dans de nombreuses tables - et qui incluent des copies de certains des mêmes attributs - les requêtes SQL peuvent être longues et complexes. La fonctionnalité de catalogue plat crée de nouveaux tableaux à la volée, où chaque ligne contient toutes les données nécessaires sur un produit ou une catégorie.

Dans les versions antérieures de Magento, il était nécessaire de reconstruire le catalogue plat chaque fois que vous apportiez des modifications aux attributs de produit ou aux associations de catégories de produits. Dans cette version, le catalogue plat est mis à jour pour vous, soit toutes les minutes, soit en fonction de votre tâche cron Magento.

Les options de catalogue plat permettent non seulement le catalogue plat et les indexeurs de produits plats, mais également l’indexation des règles de prix du catalogue et du panier. Si vous avez un grand nombre de SKU (500 000 ou plus), Magento peut indexer rapidement les règles de prix du catalogue et du panier si vous activez l'option de produit de catalogue plat.


Dans cette version, le catalogue plat est mis à jour pour vous, soit toutes les minutes, soit en fonction de votre tâche cron Magento. de quelle version vous parlez
mdeveloper

Désolé, je ne
comprends

dans votre option avez-vous référé la version actuelle comme 1.9. ou magento 2
mdeveloper

1
Cela dépend de vous quelle version vous convient. Magento 2 a plus d'avantages.
Arunendra

1
@Arunendra mdeveloper demande à quelle version de Magento vous faites référence lorsque vous dites: "Dans cette version, le catalogue plat est mis à jour pour vous". De quelle version parlez-vous? Est-ce que Magento 1.9 le met à jour pour nous? Est-ce uniquement dans Magento 2? Dans quelle version de Magento cette mise à jour a-t-elle commencé pour nous?
Olivier

1

Les catégories plates ne sont pas mises à jour automatiquement, même dans Magento 1.9.2. Je n'ai pas vérifié 1.9.3, car je reconstruis toujours manuellement les index après les mises à jour en masse (par exemple au niveau du stock).

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.