ситуация
В нашей базе данных magento у нас есть три таблицы, которые становятся слишком большими.
- sales_flat_quote_shipping_rate: 3045MB
- sales_flat_quote_address: 1688MB
- sales_flat_quote: 1897MB
Это более 6 ГБ данных.
Я нашел эту статью о том, как обрезать эти таблицы . Эта статья говорит только о третьей таблице.
Я не уверен насчет усечения, и я предпочитаю удалять все данные старше 60 дней. В статье говорится о 17 миллионах записей - у нас 20! Если я прав, удаление этих записей не приведет к блокировке таблицы, и в настоящее время я тестирую это на тестовой установке. Кажется, это работает, и это не слишком конфликтует с сайтом.
Вопросов
- Я хотел бы знать, могу ли я использовать тот же запрос для других двух таблиц?
- Мне интересно, для чего эти таблицы.
источник
limit 1000000
пока все записи старше 60 дней не исчезли. Затем я установил модуль очистки цитат AOE. Я не использовал модуль AOE для 20-минутного удаления, так как веб-сайт перестал работать - по крайней мере, на тестовой машине. Сценарий не представляет никаких проблем.В Magento2 «sales_flat_quote» был заменен на «quote», поэтому следующая команда SQL может решить эту проблему для Magento2:
источник
DELETE FROM quote WHERE updated_at < DATE_SUB(Now(),INTERVAL 60 DAY)
Хотя решение Fiasco Labs работает, я бы начал с расширения прямо с самого начала и использовал его
Mage_Sales_Model_Quote_Resource_Collection
для фильтрации и удаления старых цитат выбора. Используя правильные методы, вы можете гарантировать, что ваша работа будет работать на любой установке Magento, не полагаясь на ограничения базы данных или необработанные запросы.Что-то вроде (не проверено) ...
Вы можете расширить это
Mage_Log
или создать собственное автономное расширение. Довольно простоисточник
1.
Избегайте использования ручных запросов в расширениях.2.
Постарайтесь сделать ваши расширения независимыми, если это возможно.DELETE
Подобные запросы зависят от ограничений базы данных, которые могут быть изменены в будущем.3.
Используйте фабричные методы Magento соответствующим образом.Этот запрос удалит все кавычки, которые не конвертированы в заказы.
источник