Очистка базы данных shop_feature_values_text Есть решение
У меня существует несколько своих полей с описанием товара.
Эти поля часто/постоянно обновляются из импорта CSV
И получается так, что при изменении этого поля старое значение по всей видимости остается в базе данных в таблице shop_feature_values_text хоть и удаляется ссылка на него из таблицы shop_product_features
Чтобы не делать из базы помойку, запускаю следующий запрос в базу данных для ручной очистки таблицы. Правильно ли я делаю? или нужны дополнительные условия?
delete FROM shop_feature_values_text WHERE id NOT IN (SELECT feature_value_id FROM shop_product_features)
Если по простому - удалить значение характеристики в таблице shop_feature_values_text если отсутствует на него ссылка по ID в таблице ссылок shop_product_features
13 ответов
Так вы можете не удалить все лишние записи, потому что в таблице shop_product_features могут храниться записи с одинаковыми feature_value_id для разных типов характеристик.
Для более точного удаления лучше проверять тип характеристики при выборке id значений из shop_product_features:
250 мегабайт за несколько секунд минусом. Спасибо вам большое. Еще бы как то в крон это дело засунуть чтобы по ночам чистилось само. Наверно php скриптом можно
Например, таким файлом clean_text_feature_values.php в корне сайта:
запускаю из кроновесты
sudo /usr/bin/php /home/admin/web/ХХХ.ru/public_html/clean_text_feature_values.php
Получаю
В конце файла добавил закрытие скрипта - ?>
Кажется, у вас синтаксическая ошибка в файле /etc/php/7.2/cli/php.ini на строке 310.
Это необязательно и даже нежелательно:
Но в вашем случае это ни на что не повлияет. Просто имейте в виду.
В той строке php.ini
закомментировал ее - вроде работает... только можно ли так
Добавьте в начале строки точку с запятой:
добавил в скрипт очистку shop_search_word, shop_search_index
Может кому понадобится
А то что в одной что в дургой через какое то время по полляма записей а умным поиском я не пользуюсь
А как очистить значения остальных характеристик, которые остались после удаления товаров и больше не используются?
Например Удаляешь все товары какого то бренда и товаров в этом бренде больше нет и не будет, а значение характеристики в базе осталось. Есть возможность и такие характеристики удалять?
В разделе редактирования характеристики можете удалить лишние значения.
Ну это не выход, 950 брендов, сначала в товарах нужно проверить, все 950 брендов если у них товары, потом пойти на страницу редактирования характеристик и найти там не нужные бренды и удалить их. Работы на пол дня....
Возможно поможет плагин "Работа с характеристиками"