Perché e quando utilizzare "Catalogo piatto"?


24

Durante la ricerca di bit per la questione della velocità del sito Web di Magento, ho trovato alcuni link in cui la gente dice che abilita "Flat Catalog" per aumentare le prestazioni e la velocità.

Il problema è che il motivo per cui non è abilitato per impostazione predefinita è la velocità è problema.

Abilita "Flat Catalog" ha avuto anche qualche effetto negativo?

Il mio sito Web Magento aveva 100 prodotti e 500 prodotti in bundle e la velocità è piuttosto problematica poiché sto caricando 36 prodotti contemporaneamente.

L'abilitazione di "Catalogo piatto" risolverà il mio problema?

Risposte:


35

La differenza tra il catalogo EAV e il catalogo Flat è la seguente:

1. Catalogo Eav

EAV è il modello di database del valore dell'attributo di entità, in cui i dati sono completamente in forma normalizzata. Ogni valore di dati di colonna è memorizzato nella rispettiva tabella dei tipi di dati. Esempio, per un prodotto,

l'ID prodotto è memorizzato nella catalog_product_entity_inttabella,

nome del prodotto nella catalog_product_entity_varchartabella,

prezzo del prodotto nella catalog_product_entity_decimaltabella,

data di creazione del prodotto nella catalog_product_entity_datetimetabella,

descrizione del prodotto nella catalog_product_entity_texttabella.

EAV è complesso in quanto unisce 5-6 tabelle anche se si desidera ottenere i dettagli di un solo prodotto.

Le colonne sono chiamate attributi in EAV.

2. Catalogo piatto

Il modello flat utilizza solo una tabella, quindi non è normalizzato e utilizza più spazio nel database. Cancella il sovraccarico EAV,

È buono quando si tratta di prestazioni, in quanto richiederà solo una query per caricare l'intero prodotto invece di unire 5-6 tabelle per ottenere i dettagli di un solo prodotto.

Le colonne sono chiamate campi nel modello piatto.

Magento ha implementato indicizzatori che interrogheranno periodicamente le raccolte standard e popoleranno tabelle di database flat nel seguente formato. Dove * è l'ID negozio.

catalog_category_flat_store_*
catalog_product_flat_*

Queste tabelle contengono dati su prodotti e categorie non normalizzati che devono essere di sola lettura. Ciò consente a Magento di recuperare i dati di categoria e prodotto in una singola query.


È possibile abilitare il catalogo flat navigando verso System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Impostare questo su Sì.

Se si stanno aggiungendo nuovi attributi nella tabella EAV per il catalogo. Quindi non dimenticare di eseguire la reindicizzazione (System > Configuration > Index Management). La reindicizzazione aggiorna le tabelle del catalogo piatto.

Per ulteriori informazioni, consultare "EAV" e "Catalogo piatto" in Magento


ok 1: posso passare da flat a eav e eav a flat in qualsiasi momento? 2: è possibile aggiungere colonne dinamiche quando si utilizza anche flat?
mdeveloper

Sì, puoi passare da una all'altra. Puoi anche aggiungere colonne dinamiche. Ma assicurati di eseguire la
reindicizzazione

@RohitKundale: Abilitando Flat Catalog per il prodotto manca molti attributi e, di conseguenza, non visualizzo molte funzionalità per i prodotti. Ho anche reindicizzato. Perché tutti gli attributi non indicizzano le colonne dinamiche mentre si abilita il catalogo flat?
Anurag Khandelwal,

2
@AnuragKhandelwal Controlla qui
Rohit Kundale,

Questa dovrebbe essere stata la prima cosa che mi hanno mostrato quando ho iniziato a usare Magento.
Domino

5

Magento utilizza il modello Entity-Attribute-Value (EAV) per archiviare i dati di clienti, prodotti e categorie nel proprio database. Sebbene il modello EAV ti consenta di avere attributi completamente estensibili per quegli oggetti, gli attributi degli oggetti sono memorizzati in più tabelle anziché in una tabella molto grande.

Poiché gli attributi sono memorizzati in molte tabelle e ciò include copie di alcuni degli stessi attributi, le query SQL possono essere lunghe e complesse. La funzione di catalogo semplice crea nuove tabelle al volo, in cui ogni riga contiene tutti i dati necessari su un prodotto o una categoria.

Nelle versioni precedenti di Magento, era necessario ricostruire il catalogo flat ogni volta che venivano apportate modifiche agli attributi del prodotto o alle associazioni di categoria di prodotto. In questa versione, il catalogo flat viene aggiornato per te, ogni minuto o in base al tuo lavoro cron di Magento.

Le opzioni di catalogo flat non solo consentono il catalogo flat e gli indicizzatori di prodotti flat, ma consentono anche l'indicizzazione per le regole di prezzo del catalogo e del carrello. Se disponi di un numero elevato di SKU (500.000 o più), Magento può indicizzare rapidamente le regole di prezzo del catalogo e del carrello se abiliti l'opzione di prodotto catalogo semplice.


In questa versione, il catalogo flat viene aggiornato per te, ogni minuto o in base al tuo cron job Magento. a quale versione ti riferisci
mdeveloper

Mi dispiace non
capisco il

nella tua opzione hai indicato la versione corrente come 1.9. o magento 2
mdeveloper

1
Dipende da te quale versione è adatta a te. Magento 2 ha più vantaggio.
Arunendra

1
@Arunendra mdeveloper chiede a quale versione di Magento ti riferisci quando dici: "In questa versione, il catalogo flat viene aggiornato per te". Di quale versione stai parlando? Magento 1.9 lo aggiorna per noi? È solo in Magento 2? In quale versione di Magento ha iniziato a essere aggiornato per noi?
Olivier,

1

Le categorie piatte non vengono aggiornate automaticamente in Magento 1.9.2. Non ho controllato 1.9.3, poiché ricostruisco sempre manualmente gli indici dopo gli aggiornamenti di massa (ad es. Livello delle scorte).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.