Какая идеальная структура каталога для картинок и почему?
Почитал статьи в интернетах. Но, все равно интересуют ответы от тех, кто на реальных проектах делал замеры структуры каталога и поиска по нему определенного файла из большого количества ( 1к+ или 10к+ и больше) имеющихся файлов.
В моем случаи это картинки (фотографии).
Я читал, что если в одной папке содержатся все картинки (10к файлов), то поиск нужной одной или трех картинок увеличивается по времени. А если разделять каталог на субкаталоги, где идет ограничение к примеру по 100 картинок, то поиск происходит быстрее.
Соответствует это действительности на практике?
Я считаю, что по логике да, но в реальности у меня еще нету такого объема, но он намечается в скором будущем.
p.s. поправьте пожалуйста теги, если я не правильно расставил, спасибо.
Функция glob() в PHP? - тест 8-летней давности на выборку файлов по маске с директории в 200 000 файлов.
файловой системе фиолетово один файл в директории или 100500, на скорости прямого доступа к файлам это не отразиться.
а дальше все зависит от того, каким образом вы собрались организовывать поиск.
Во первых есть ограничения файловой системы на количество. См. inode
Во вторых для большого количества используется вообще внефайловое хранение. См. https://habr.com/company/yandex/blog/228389/ например.
Зачастую хостеры предлагают уже готовые развернутые на их серверах варианты cloud strorage. Например, Amazon S3 (у разных хостеров, не только у Amazon), OpenStack Swift (у разных хостеров), Google Cloud Storage.
Самому развернуть и поэкспериментировать можно например с minio https://github.com/minio/minio
В качестве имён файлов можно использовать хэш содержимого, файлы распределять по подкаталогам, имена которых образованы первыми символами имен файлов. Пример: /34c/82a/416/34c82a416fca4cf3a1215ad5e8f2d782.jpg