Я согласен, что хранение изображений / файлов в файловой системе вместо базы данных является хорошим подходом.
Что касается времени доступа к файлу, вы можете проверить, какую файловую систему вы используете, как она ведет себя, если каталог содержит много файлов. Некоторые файловые системы могут ухудшить производительность, если это огромный список. Если это так, вы можете создать структуру папок, например, от 00-FF, и это может быть на нескольких уровнях в зависимости от количества файлов, которые вы ожидаете. Вы могли бы, например, используйте MD5-хэш некоторого поля (например, имя файла), чтобы отсортировать его в правильный каталог (например, хэш FABE063E ... переходит в FA / BE / имя файла).
Если вы не хотите, чтобы имена файлов были угаданными, чтобы ограничить доступ, вы также можете использовать некоторую хеш или даже случайную строку в качестве имени файла. Таким образом, только те пользователи, которые знают имя файла (например, вы указали ссылку на него), могут получить доступ к этому файлу. Это также может быть важно, если вы хотите перейти на CDN, где вы в конечном итоге не сможете самостоятельно проверить разрешения.
(Если права доступа не важны, а OTOH нужны предположительные имена файлов, вы, очевидно, идете другим путем и, возможно, используете имена пользователей в качестве структуры папок и т. Д.)