Situation
Dans notre base de données magento, nous avons trois tables qui deviennent trop grandes.
- sales_flat_quote_shipping_rate: 3045MB
- sales_flat_quote_address: 1688MB
- sales_flat_quote: 1897MB
Cela représente plus de 6 Go de données.
J'ai trouvé cet article sur la façon de tronquer ces tables . Cet article ne parle que du troisième tableau.
Je ne suis pas sûr de la troncature et je préfère supprimer toutes les données de plus de 60 jours. L'article parle de 17 millions d'enregistrements - nous en avons 20! Si je ne me trompe pas, la suppression de ces enregistrements ne verrouillera pas la table, et je teste actuellement cela sur une installation de test. Cela semble fonctionner et cela n'entre pas trop en conflit avec le site.
Des questions
- Je voudrais savoir si je peux également utiliser la même requête pour les deux autres tables?
- Je me demande à quoi servent ces tableaux.
la source
limit 1000000
jusqu'à ce que tous les enregistrements de plus de 60 jours aient disparu. J'ai ensuite installé le module AOE Quote Cleaner. Je n'ai pas utilisé le module AOE pour les suppressions de 20 m, car le site Web a cessé de fonctionner - au moins sur la machine de test. Le script n'a posé aucun problème.Dans Magento2, le 'sales_flat_quote' a été remplacé par 'quote', donc la commande SQL suivante peut résoudre ce problème pour Magento2:
la source
DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
Bien que la solution de Fiasco Labs fonctionne, je voudrais juste commencer par une extension dès le départ et utiliser
Mage_Sales_Model_Quote_Resource_Collection
pour filtrer et supprimer les anciennes citations de choix. En utilisant les méthodes appropriées, vous pouvez vous assurer que votre opération fonctionnera sur n'importe quelle installation Magento en ne s'appuyant pas sur les contraintes de base de données ou les requêtes brutes.Quelque chose comme (non testé)…
Vous pouvez l'étendre
Mage_Log
ou créer sa propre extension autonome. Assez simple.la source
1.
Évitez d'utiliser des requêtes manuelles dans les extensions.2.
Essayez de rendre vos extensions indépendantes, si possible.DELETE
des requêtes comme celles-ci dépendent de la contrainte de base de données, qui peut être modifiée à l'avenir.3.
Utilisez les méthodes d'usine de Magento de manière appropriée.Cette requête supprimera toutes les citations qui n'ont pas été converties en commandes.
la source