Situação
Em nosso banco de dados magento, temos três tabelas que estão crescendo muito.
- sales_flat_quote_shipping_rate: 3045MB
- sales_flat_quote_address: 1688MB
- sales_flat_quote: 1897MB
São mais de 6 GB de dados.
Encontrei este artigo sobre como truncar essas tabelas . Este artigo fala apenas da terceira tabela.
Não tenho certeza sobre o truncamento e prefiro excluir todos os dados com mais de 60 dias. O artigo fala de 17 milhões de registros - temos 20! Se estiver correto, excluir esses registros não bloqueará a tabela e, atualmente, estou testando isso em uma instalação de teste. Isso parece funcionar e não conflita muito com o site.
Questões
- Gostaria de saber se também posso usar a mesma consulta para as outras duas tabelas?
- Estou me perguntando para que servem essas tabelas.
fonte
limit 1000000
até que todos os registros com mais de 60 dias se esgotassem. Em seguida, instalei o módulo AOE Quote Cleaner. Não usei o módulo AOE para as exclusões de 20m, pois o site parou de funcionar - pelo menos na máquina de teste. O script não apresentou nenhum problema.No Magento2, o 'sales_flat_quote' foi substituído por 'quote'; portanto, o comando SQL a seguir pode corrigir esse problema no Magento2:
fonte
DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
Embora a solução do Fiasco Labs funcione, eu começaria com uma extensão desde o início e usaria
Mage_Sales_Model_Quote_Resource_Collection
para filtrar e remover citações mais antigas da escolha. Usando os métodos adequados, você pode garantir que sua operação funcione em qualquer instalação do Magento, não contando com restrições de banco de dados ou consultas brutas.Algo como (não testado)…
Você pode estender isso
Mage_Log
ou fazer sua própria extensão independente. Bem simples.fonte
1.
Evite usar consultas manuais em extensões.2.
Tente tornar suas extensões independentes, se possível.DELETE
consultas como essas dependem da restrição do banco de dados, que pode ser alterada no futuro.3.
Use os métodos de fábrica do Magento adequadamente.Esta consulta excluirá todas as cotações que não foram convertidas em pedidos.
fonte