Как оптимальнее удалить все файлы, не упоминающиеся в БД?

Есть таблица, в которой находятся ссылки на изображения. Все изображения в одной папке. Есть изображения, на которые нет ссылок в таблице. Как их удалить оптимально?

Решение "в лоб" - создать массив названий изображений из таблицы, потом пройтись по папке перебирая изображения и сравнивая каждое с массивом. Но, думаю, есть более оптимальное решение.
  • Вопрос задан
  • 431 просмотр
Решения вопроса 2
Vapaamies
@Vapaamies
Психанул и снес свои ответы козлам, не отмечающим…
Можно решить задачу путем метапрограммирования: при помощи SQL сгенерировать скрипт перемещения файлов в новую папку, потом оставшиеся удалить и вернуть перемещенные обратно.
Ответ написан
Комментировать
@Leshgan
Я "за" решение "в лоб". Запрос к базе дает на выходе массив. Далее идет работа с двумя массивами с использованием функции in_array
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
65536
@65536
Самому надо на днях это будет делать. Думаю сделать влоб так как это однократная операция. Может быть порезче получится если составить два списка. В одном имена картинок в папке, в другом имена картинок из базы. Вычесть из первого списка второй - получится список картинок, которые надо удалить
Ответ написан
suguby
@suguby
программист, python, django, mysql, git, hg, linux
Написать скрипт, который сканит диру одним концом, а другим - лезет в базу: есть ли там ссылка на изображение? если нет - удаляем файл. Скрипт строчек на 10-20-30.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы