Por que e quando usar o "Flat Catalog"?

24

Enquanto pesquisava pouco sobre a questão da velocidade do site magento, recebi alguns links onde as pessoas dizem que permitem que o "Flat Catalog" melhore o desempenho e a velocidade.

Problema é por isso que não está ativado por padrão, é velocidade.

A ativação do "Flat Catalog" também teve algum efeito adverso?

Meu site magento tinha 100 produtos e 500 produtos empacotados e a velocidade é bastante problemática, pois estou carregando 36 produtos de uma só vez.

A ativação do "Catálogo Simples" solucionará meu problema?

mdeveloper
fonte

Respostas:

35

A diferença entre o catálogo EAV e o catálogo plano é a seguinte:

1. Catálogo Eav

O EAV é um modelo de banco de dados de valor de atributo de entidade, em que os dados estão totalmente na forma normalizada. Cada valor de dados da coluna é armazenado em sua respectiva tabela de tipos de dados. Exemplo, para um produto,

ID do produto é armazenado na catalog_product_entity_inttabela,

nome do produto na catalog_product_entity_varchartabela,

preço do produto na catalog_product_entity_decimaltabela,

data de criação do produto na catalog_product_entity_datetimetabela,

descrição do produto na catalog_product_entity_texttabela.

O EAV é complexo, pois junta 5-6 tabelas, mesmo se você quiser obter apenas os detalhes de um produto.

As colunas são chamadas de atributos no EAV.

2. Catálogo Plano

O modelo plano usa apenas uma tabela, portanto não é normalizado e usa mais espaço no banco de dados. Limpa a sobrecarga do EAV,

É bom quando se trata de desempenho, pois exigirá apenas uma consulta para carregar o produto inteiro em vez de juntar 5-6 tabelas para obter apenas os detalhes de um produto.

As colunas são chamadas de campos no modelo plano.

O Magento implementou indexadores que consultam periodicamente as coleções padrão e preenchem tabelas de banco de dados simples no seguinte formato. Onde * é o ID da loja.

catalog_category_flat_store_*
catalog_product_flat_*

Essas tabelas possuem dados de produto e categoria não normalizados que devem ser somente leitura. Isso permite que o Magento busque dados de categoria e produto em uma única consulta.


Você pode ativar o catálogo simples navegando para System > Configuration > Catalog > Frontend > Use Flat Catalog Category | Use Flat Catalog Product. Defina como sim.

Se você estiver adicionando novo atributo na tabela EAV para o catálogo. Então não se esqueça de executar a re-indexação (System > Configuration > Index Management). A reindexação atualiza suas tabelas de catálogo simples.

Para mais informações, consulte “EAV” e “Flat Catalog” no Magento

Rohit Kundale
fonte
ok 1: posso alternar entre flat para eav e eav para flat a qualquer momento? 2: colunas dinâmicas podem ser adicionadas ao usar flat também?
Mdeveloper 9/03/16
Sim, você pode alternar entre eles. Você também pode adicionar colunas dinâmicas. Mas certifique-se de executar re-indexação depois de adicionar novo atributo para EAV
Rohit Kundale
@RohitKundale: Habilitando o Flat Catalog para produtos com muitos atributos ausentes e, como resultado, não estou obtendo muitos recursos exibidos para produtos. Eu re-indexado também. Por que todos os atributos não estão indexando colunas dinâmicas enquanto ativam o catálogo simples?
Anurag Khandelwal
2
@AnuragKhandelwal Verifique aqui
Rohit Kundale
Esta deveria ter sido a primeira coisa que eles me mostraram quando comecei a usar o magento.
Domino
5

O Magento usa o modelo EAV (Entity-Attribute-Value) para armazenar dados de clientes, produtos e categorias em seu banco de dados. Embora o modelo EAV permita que você tenha atributos completamente extensíveis para esses objetos, eles são armazenados em várias tabelas em vez de em uma tabela muito grande.

Como os atributos são armazenados em muitas tabelas - e isso inclui cópias de alguns dos mesmos atributos - as consultas SQL podem ser longas e complexas. O recurso de catálogo plano cria novas tabelas rapidamente, em que cada linha contém todos os dados necessários sobre um produto ou categoria.

Nas versões anteriores do Magento, era necessário recriar o catálogo simples toda vez que você fazia alterações nos atributos do produto ou nas associações de categorias de produtos. Nesta versão, o catálogo simples é atualizado para você - a cada minuto ou de acordo com o trabalho do cron do Magento.

As opções de catálogo simples não apenas ativam os indexadores de catálogo simples e de produto simples, mas também permitem a indexação para regras de preço de catálogo e carrinho de compras. Se você tiver um grande número de SKUs (500.000 ou mais), o Magento pode indexar rapidamente as regras de preço do catálogo e do carrinho de compras se você ativar a opção de produto de catálogo simples.

Arunendra
fonte
Nesta versão, o catálogo simples é atualizado para você - a cada minuto ou de acordo com o trabalho do cron do Magento. qual versão você está se referindo
mdeveloper 9/16
Desculpe eu não estou recebendo o seu ponto
Arunendra
na sua opção, você referiu a versão atual como 1.9. ou magento 2
mdeveloper
11
Depende de você qual versão é adequada para você. Magento 2 tem mais vantagem.
Arunendra 9/03/16
11
O @Arunendra mdeveloper está perguntando a qual versão do Magento você se refere quando diz: "Nesta versão, o catálogo simples é atualizado para você". De que versão você está falando? O Magento 1.9 atualiza para nós? É apenas no Magento 2? Em qual versão do Magento isso começou a ser atualizado para nós?
Olivier
1

Categorias planas não são atualizadas automaticamente, mesmo no Magento 1.9.2. Eu não verifiquei a 1.9.3, pois sempre recriamos índices manualmente após atualizações em massa (por exemplo, nível de estoque).

Steve Holdoway
fonte