Поиск в хосте или подключение к базе данных - PullRequest
1 голос
/ 23 февраля 2012

На моем хосте у меня более 1000 папок, и я ожидаю, что он достигнет более 10000 папок.

Все папки содержат около 20 изображений.

В настоящее время я использую scandir для отображения всех изображений в одной папке и показа пользователю только одного изображения.

Итак, вот мой вопрос: для отображения только одного изображения во всех этих изображениях я должен сохранить их имя в базе данных и затем загрузить их по их идентификаторам или использовать scandir и выполнить поиск по всей папке?

Кстати, мой сценарий похож на mangafox.com.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Я не могу назвать какие-либо точные цифры, но база данных определенно сделает ваш сайт быстрее. Сканирование каталогов для показа изображения определенно не будет масштабироваться, равно как и быстрый поиск пути к изображению в базе данных и его использование.

Кроме того, вы можете использовать базу данных для других метаданных, относящихся к изображениям, например комментариев или информации об исполнителе, которые сложнее добавить к изображению, используя только файловую систему.

1 голос
/ 23 февраля 2012

Похоже, что это частое занятие - вы не хотите запускать scandir все время.Однако, если файлы часто меняются , то вы добавили дополнительную проблему поддержания синхронизации базы данных с файловой системой.

Это действительно компромисс между простым, но иногда медленным (используяscandir для создания списка файлов) и сложный, но более быстрый (с синхронизацией базы данных и файловой системы).

Сначала я бы предложил создать массив, представляющий результаты или scandir, и кэшировать егофайловая система.Это может быть проще для синхронизации и, тем не менее, обеспечивает более высокую производительность (при условии, что это для одной папки, а не для всей структуры).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...