Как мне оптимизировать мой скрипт, который сканирует файлы в папке, если они находятся в базе данных? - PullRequest
0 голосов
/ 18 января 2020

У меня есть папка / images (с ~ 95.000 файлов ), и я проверяю каждый файл, если он есть в базе данных.

Таблица: images

Строка: га sh

В папке содержатся все мои изображения с именем sha1.

Я использую shuffle($images); для убедитесь, что проверка является случайной, в противном случае она проверяет только первые 35 000 изображений.

Если я go проверяет более 35 000, сценарий устанавливает таймаут, а страница блокирует его.

Пример имени изображения: d0a0bb3149bea2335e8784812fef706ad0a13156.jpg

Мой сценарий:

  1. Я выбираю изображения в базе данных
  2. Я помещаю его в массив
  3. Я делаю массив случайным (чтобы всегда не проверять первые 35 000 изображений)
  4. Я создаю массив файлов изображений в папке / images
  5. Я проверяю отсутствующие файлы базы данных, используя массив, созданный функцией opendir();
  6. Я отображаю ответ

1 Ответ

1 голос
/ 18 января 2020

Вот несколько вещей, которые стоит рассмотреть или попробовать:

  • Объединить '.jpg' в hash в sql, затем использовать fetch_all в числительном c массив.
  • используйте scandir для создания массива файлов в каталоге
  • используйте array_diff для удаления $fichiers_a_exclures и $images
  • итерация по этому наименьшему массиву для выполнения sha1 теста
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...