Quando devo usar a opção de mesa plana da categoria?

16

Como acompanhamento de uma pergunta anterior , gostaria de saber:

Quando devo usar a opção de mesa plana da categoria?

Enquanto pesquisava no Google, encontrei um conselho para habilitá-lo " quando você tem muitas categorias ". Mas o que é muito ?

Compreendo facilmente que a ativação de tabelas simples para produtos é uma boa decisão em termos de desempenho, mas é realmente muito importante para catálogos?

E que implicações concluem disso? Acabei de aprender que ativar tabelas de categorias planas leva a não conseguir salvar posições de produtos de categoria. Pelo menos não é tão fácil quanto sem a opção plana (thx para Marius por sua ajuda). Existem outras coisas mencionáveis?

Desde já, obrigado :)

Celldweller
fonte

Respostas:

10

Se você possui o PHPMyAdmin instalado no seu servidor, pode dar uma olhada nas tabelas do Magento. Você verá que há muito começando com catalog_product_...e catalog_category_....

Tudo isso é usado para cada produto e categoria, o que significa muitas consultas complicadas e pesadas para todas as páginas que você chama.

Para aliviar a carga no MySQL e acelerar sua loja, o Magento oferece mesas planas. Por exemplo catalog_product_flat_1. Se você der uma olhada na estrutura desta tabela, verá que ela possui muitos dados básicos do produto, o que significa que, por exemplo, na lista de categorias de produtos, apenas uma consulta deve ser executada nessa tabela em vez de consultar o várias outras tabelas contendo os dados do atributo.

No entanto, esses dados são agregados dos dados das outras tabelas, o que significa que toda vez que você salva um produto, vários indexes( System > Configuration > Index Management) são atualizados para compilar os dados do produto. Em alguns casos, como por exemplo, durante o desenvolvimento, isso pode ser desnecessário. Você deseja ver todas as alterações imediatamente, mesmo que o tempo de carregamento da página possa demorar um pouco.

Portanto, em conclusão, sempre que você iniciar uma loja para o público, ative-a e, ao programar, tente não usar objetos completos de produtos ou de catálogo, mas use os dados fornecidos pelos índices simples.

Sander Mangel
fonte
Eu acho que sempre ativaria tabelas planas de produtos em um ambiente produtivo. Mas não tinha tanta certeza sobre as tabelas de categorias planas. Então você diz que sempre ativaria os dois? Independentemente de quantos catálogos você possui?
precisa saber é o seguinte
Sempre ative-os, quanto mais categorias, maior o benefício, é claro, mas mesmo quando você tiver apenas 10 categorias, ainda será possível salvar algumas consultas.
Sander Mangel
4
Você sempre deve ativar entidades de catálogo simples, mas em teoria existe um caso em que não funciona. Isso acontece quando você tem muitos atributos usados ​​na lista de produtos e ultrapassa o limite máximo de linhas do mysql. Eu já vi isso acontecer apenas uma vez antes. Você não precisa se preocupar muito, mas, caso isso aconteça, você saberá o porquê.
Marius
@Celldweller, podemos fornecer mais informações sobre sua pergunta?
Sander Mangel
0

Se você tiver muitas categorias ou muitos atributos personalizados para categorias, é uma boa escolha devido à menor complexidade da consulta. Lembre-se de que a carga pesada se beneficia ainda mais dela. A principal desvantagem é que categorias e flat_categories usam uma interface muito diferente; portanto, o código deve ser muito cuidadoso no caso de categorias planas ativadas.

Nils Preuß
fonte
Lá estão eles de novo. Muito e muitos. ;-) Então você também diria "depende de"? Você ativaria tabelas de categoria simples quando tiver 10 catálogos? Ou 50? É possível desenhar uma linha?
precisa saber é o seguinte
É necessário saber quais são os casos com algum exemplo para que as alterações de código sejam resolvidas enquanto habilita o catálogo simples.
Anurag Khandelwal 10/10