Sytuacja
W naszej bazie danych Magento mamy trzy tabele, które stają się zbyt duże.
- Sales_flat_quote_shipping_rate: 3045 MB
- sales_flat_quote_address: 1688 MB
- oferta sprzedaży: 1897 MB
To ponad 6 GB danych.
Znalazłem ten artykuł na temat obcinania tych tabel . Ten artykuł mówi tylko o trzeciej tabeli.
Nie jestem pewien co do obcięcia i wolę usunąć wszystkie dane starsze niż 60 dni. Artykuł mówi o 17 milionach płyt - mamy 20! Jeśli mam rację, usunięcie tych rekordów nie zablokuje tabeli, a obecnie testuję to podczas instalacji testowej. To wydaje się działać i nie powoduje zbytniego konfliktu z witryną.
pytania
- Chciałbym wiedzieć, czy mogę użyć tego samego zapytania również dla pozostałych dwóch tabel?
- Zastanawiam się, do czego służą te tabele.
źródło
limit 1000000
dopóki nie zniknęły wszystkie rekordy starsze niż 60 dni. Następnie zainstalowałem moduł AOE Quote Cleaner. Nie użyłem modułu AOE do usuwania 20 m, ponieważ strona przestała działać - przynajmniej na maszynie testowej. Skrypt nie stwarzał żadnych problemów.W Magento2 „sales_flat_quote” zostało zastąpione przez „quote”, więc następujące polecenie SQL może rozwiązać ten problem w Magento2:
źródło
DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
Chociaż rozwiązanie Fiasco Labs działa, zacznę od rozszerzenia od samego początku i użyję go
Mage_Sales_Model_Quote_Resource_Collection
do filtrowania i usuwania starszych ofert wyboru. Korzystając z odpowiednich metod, możesz mieć pewność, że Twoja operacja będzie działać na każdej instalacji Magento, nie polegając na ograniczeniach bazy danych lub surowych zapytaniach.Coś jak (niesprawdzone)…
Możesz to rozszerzyć
Mage_Log
lub stworzyć własne samodzielne rozszerzenie. Dość proste.źródło
1.
Unikaj ręcznych zapytań w rozszerzeniach.2.
Jeśli to możliwe, postaraj się, aby rozszerzenia były niezależne.DELETE
takie zapytania zależą od ograniczenia bazy danych, które może ulec zmianie w przyszłości.3.
Stosuj odpowiednio metody fabryczne Magento.To zapytanie spowoduje usunięcie wszystkich ofert, które nie zostały zamienione na zamówienia.
źródło