ИМО, вы можете реализовать одно из двух решений.
Гибридный - использовать базу данных для сохранения пути к файлу в том виде, в каком он существует в файловой системе.
NoSQL - полностью отойдите от базы данных и воспользуйтесь решением NoSQL, предоставляющим API для доступа к файлам в файловой системе.
Я видел обе используемые реализации,# 1 до появления # 2 стал популярным.Несмотря на то, что я использовал № 1 дольше, я чувствую, что № 2 - лучшая альтернатива для хранения данных «актива» (изображения, описания html, видеофайлы).Основная причина того, что NoSQL лучше, чем MySQL, в отношении доступа к данным активов, заключается в том, что вы не тратите драгоценные соединения с базой данных только для того, чтобы получить пути к файлам.
Также еще одна рекомендация;разделите ваши каталоги, используя productids в качестве родительских каталогов.Примите во внимание следующее:
# yours
dir1
... 125K files
dir2
... 125K files
# chunked (parent dirs are product ids)
3
... 3 files
4
... 2 files
5
... 3 files
Статистические файлы в каталоге, где их всего несколько (<100 файлов), гораздо быстрее, чем статовые файлы в каталоге, в котором несколько тысяч файлов. </p>