Как лучше всего хранить изображения веб-приложений в файловой системе - PullRequest
3 голосов
/ 22 октября 2010

Какова наилучшая практика для хранения большого количества файлов, на которые есть ссылки в базе данных, в файловой системе?

В настоящее время мы переходим из системы, которая хранит около 14 000 файлов (около 6 ГБ изображенийи документы) в базе данных MySQL.Это быстро становится неуправляемым.

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

В частности, я хотел бы знать:

  • Является ли это хорошим решением с учетом этих параметров?
  • Оставит ли это место для дальнейшего масштабирования в будущем?
  • Есть ли какие-либо опасения по поводу хранения многих файлов в одном месте?
  • Есть ли лучший способ присвоения имен / распространенияфайлы?

Ответы [ 2 ]

2 голосов
/ 22 октября 2010

Мне нравится называть файл следующим образом / * создать каталог * / $ dir = date ('Y'). '/'. Date ('m'). '/'. Date ('d');

1 голос
/ 22 октября 2010

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

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