Desenvolvemos um projeto magento com um grande registro de inventário e sempre enfrentamos o problema de indexação. Tentamos tudo o que foi encontrado na Internet para resolver problemas de indexação cotidianos, como truncar tabelas simples e reindexar usando CLI, configurando o cron para indexação, mas essa é a nossa dor de cabeça do dia-a-dia diante do problema de indexação.
Estamos procurando uma solução permanente para esse problema. Enquanto trabalhamos em projetos, existem diferentes cenários, como atualizar os produtos diariamente ou importar os produtos de algum outro feed diariamente.
Qualquer pessoa que tenha algumas práticas recomendadas com essa ou com alguma solução alternativa, compartilhe-as que serão muito apreciadas.
Respostas:
É importante entender quais índices são lentos e por que
A complexidade do catálogo e, finalmente, a arquitetura da loja determinam quanto tempo levará um re-índice - combinado com a infraestrutura subjacente.
Se você possui 50.000 produtos e 10 visualizações de loja, pode garantir os poucos milhões de linhas em
catalog_url_rewrite
levarão tempo para serem processados.Se você possui 100 produtos, mas 5.000 atributos, pode garantir que a tabela
catalog_attributes
oucatalog_product_flat
levará um tempo para ser reconstruída ou cairá de cara no chão.Se você tiver 1.000 produtos, mas 500 atributos pesquisáveis,
catalog_fulltext_search
novamente levará um tempo para concluirA solução para todos os problemas que você enfrenta não é do tamanho 1, serve para arquitetar sua loja corretamente; ter a infraestrutura certa no lugar para apoiá-la e usar uma frequência / estratégia de re-indexação que ofereça suporte ao desempenho e desempenho recentes.
Há também o caso de avaliar se determinados índices são necessários. O uso de categoria / produto plano nem sempre torna todas as lojas mais rápidas; vimos isso tornar as lojas muito mais lentas. Portanto, você pode descobrir que, após testar o desempenho antes / depois - elas nem são consideradas.
fonte
tl; dr
Não existe uma solução de bala de prata. Existem algumas soluções alternativas, eu sugiro
Sonassi_Fastsearchindex
- mas isso é especificamente para pesquisa de catálogo.Talvez a desativação das atualizações de índice ao salvar - agendamento para execução durante a noite - forneça algum alívio? Combinado com a adição de mais cache - memcached, Redis, APC - e um cache de página inteira como o Varnish (se você estiver executando o CE), pode começar. Se você planeja usar o Varnish, consulte o
Nexcess_Turpentine
github para iniciar rapidamente.Mais Informações
Os problemas de indexação - especificamente catalog_url_rewrites - são bem conhecidos e documentados na comunidade. O Magento lidou com isso na versão Enterprise porque esses são os clientes que são mais afetados adversamente. Muitos clientes de EE têm produtos com mais de 10k e várias visualizações de lojas, sites, etc.
No entanto, se você tiver um catálogo grande e um grande número de atributos, poderá encontrar-se na posição de que a indexação levará um longo período de tempo - especificamente catalog_url_rewrite, product_flat - nesse caso, minha sugestão é não corrigir o tempo de execução do índice comprimento, mas sim descarregar algum processamento para permitir que a caixa gaste ciclos de CPU indexando em vez de exibir conteúdo .
As perguntas a serem feitas:
Não existe uma solução completa para esse problema em particular - como fornecedor de soluções, você deve ajudar seu cliente a tomar a decisão que melhor melhorará as vendas e os negócios, mantendo os custos indiretos baixos.
Alternativas
Descarregue a pesquisa de catálogo e a navegação em camadas para o Solr.
Escala horizontalmente. Adicione mais servidores Apache / nginx. Mais servidores = taxa de transferência mais simultânea. Isso não é 1: 1. O Nexcess tem um ótimo whitepaper sobre desempenho e configuração do Apache aqui: http://www.nexcess.net/magento-best-practices-whitepaper
E, se você optar por usar o verniz, lembre-se:
fonte
Na maioria das grandes oficinas on-line do Magento, tem sido muito difícil fazer o gerenciamento de índice do back-end do Magento funcionar. Eu tive esse problema frequentemente. A execução do shell script o tempo todo pelo desenvolvedor geralmente é agitada. Normalmente, eu corrijo esse problema permanentemente assim.
Crio uma nova cópia do shell / indexer.php> shell / myindexer.php
Personalize shell / myindexer.php em torno da linha 154
Para
e adicione esta verificação na linha 166
antes
E então adiciono o novo script de shell ao cpanel cron para executar a cada 5 minutos
Como o script de shell acima é executado a cada 5 minutos e reindexa apenas os processos que exigem reindexação, reduz o risco de carga pesada no cpu do servidor, bem como todo o processo de reindexação é muito rápido. Se nenhum processo exigir reindexação, ele simplesmente não executará o processo de reindexação. Além disso, lembre-se de colocar o modo de reindexação em "Atualização ao salvar" na página Gerenciamento de índice. Se você não souber, poderá obter esta opção em Ações> Alterar modo de índice ao lado do botão Enviar.
fonte
Seria mais fácil dizer se você poderia fornecer mais dados (tamanho do inventário, visitantes, máquina), mas aqui está uma possibilidade:
Sonassi_Fastsearchindex
índice de extensão para pesquisa de catálogo. Embora apenas indexe título, descrição e sku (acho que percebi), funciona muito bem e reduz o tempo do indexador de pesquisa de catálogo.Isso está sendo executado no Magento CE 1.7.0.2; ainda é uma dor;)
fonte
usando Dnd_Patchindexurl, fui capaz de reduzir o tempo de reindexação catalog_url_rewrite para quase 70%
Eu acho que é uma boa solução excluir produtos desativados ou produtos não visíveis para que o URL seja criado para nada!
Depois de:
Eu instalei no 1.9.1.1 e funcionando muito bem!
Também pode ser instalado através do Connect http://www.magentocommerce.com/magento-connect/catalog/product/view/id/15074/s/dn-d-patch-index-url-1364/category/12863/
fonte
Atualize para o EE 1.13. Os indexadores foram fortemente aprimorados nesta versão.
fonte