Situación
En nuestra base de datos de magento tenemos tres tablas que están creciendo demasiado.
- sales_flat_quote_shipping_rate: 3045MB
- sales_flat_quote_address: 1688MB
- sales_flat_quote: 1897MB
Eso es más de 6 GB de datos.
Encontré este artículo sobre cómo truncar estas tablas . Este artículo solo habla de la tercera tabla.
No estoy seguro acerca del truncamiento, y prefiero eliminar todos los datos anteriores a 60 días. El artículo habla de 17 millones de registros, ¡tenemos 20! Si estoy en lo cierto, eliminar estos registros no bloqueará la tabla, y actualmente estoy probando esto en una instalación de prueba. Eso parece funcionar, y no entra en conflicto con el sitio.
Preguntas
- ¿Me gustaría saber si puedo usar la misma consulta para las otras dos tablas también?
- Me pregunto para qué son estas tablas.
fuente
limit 1000000
hasta que todos los registros de más de 60 días desaparecieron. Luego instalé el módulo AOE Quote Cleaner. No utilicé el módulo AOE para las eliminaciones de 20 m, ya que el sitio web dejó de funcionar, al menos en la máquina de prueba. El guión no planteó ningún problema.En Magento2, el 'sales_flat_quote' fue reemplazado por 'quote', por lo que el siguiente comando SQL puede solucionar este problema para Magento2:
fuente
DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
Aunque la solución de Fiasco Labs funciona, simplemente comenzaría con una extensión desde el primer momento y la usaría
Mage_Sales_Model_Quote_Resource_Collection
para filtrar y eliminar las citas anteriores de elección. Usando los métodos adecuados, puede asegurarse de que su operación funcionará en cualquier instalación de Magento al no depender de restricciones de la base de datos o consultas sin formato.Algo como (no probado) ...
Puede ampliar esto
Mage_Log
o hacer su propia extensión independiente. Bastante simple.fuente
1.
Evite usar consultas manuales en extensiones.2.
Intenta que tus extensiones sean independientes, si es posible.DELETE
consultas como estas dependen de la restricción de la base de datos, que puede modificarse en el futuro.3.
Utilice los métodos de fábrica de Magento adecuadamente.Esta consulta eliminará todas las comillas, que no se convirtieron en pedidos.
fuente