Хранение файлов в базе данных Vs файловой системы

один из моих клиентов просит Система управления документами для нескольких тысяч документов в другом формате, например pdf, doc, docx и т.д. Мой вопрос это лучший способ сохранить этот файл в базе данных или в файловой системе? Как легко обеспечить документ между двумя подходами?

Быстрый поиск файлов является ключевым требованием.

am используя mysql, если это помогает

С уважением.

Ответы

Ответ 1

Возможно, вы захотите сохранить его непосредственно в файловой системе.

При использовании файловой системы:

  • Конфиденциальность: Поместите документы за пределы вашего Apache Document Root. Затем ваш PHP-контроллер выведет документы.
  • Описанный путь: не хранить тысячи документов в одном каталоге, создавать разные каталоги. Например, вы можете очертить хеш на имени файла. Например, /documents/A/F/B/AFB 43677267ABCEF5786692/myfile.pdf.
  • Номер Inode:. Вы можете запустить из inodes, если вы храните много мелких файлов (возможно, это не ваш случай при хранении в основном документов PDF и офисных документов).

Если вам нужно искать эти документы (дата/название/и т.д.), вы можете захотеть сохранить метаданные в базу данных для лучшей производительности.

FYI, в этом вопросе MS SQL Server имеет FILESYSTEM тип столбца ( как гибрид), но на данный момент MySQL не имеет альтернативы.

Ответ 2

Использование доступа к файловой системе для больших datablobs означает, в общем, более быстрый доступ и меньше накладных расходов, чем хранение их в базе данных mysql.

Один интересный и возможно связанный пост: Хранение изображений в БД - Да или Нет?

Ответ 3

для высокой производительности вы должны использовать файловую систему, используя функцию php glob и интерфейс JS. Я закончил проект, как это в марте.