Сохранить файл как blob в базе данных MYSQL или как путь к файлу - PullRequest
0 голосов
/ 11 сентября 2018

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

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

Затем для каждого заказа создается три документа.Размер каждого документа не превышает 1 МБ, поэтому я собираюсь сохранить их в своей БД в виде больших двоичных объектов, но я не знаю, что произойдет в будущем, размер документов может значительно увеличиться (например: 5 МБ).Что я должен делать?и почему?Сохраните их как BLOB-объекты или сохраните их как путь к файлу.

Например: рекомендуется ли сохранять файлы размером 5 МБ в виде больших двоичных объектов в БД или лучше сохранять их как путь к файлу с самого начала (если я знаю, что это может произойти), либо сохранять их как большие двоичные объекты?и если они увеличатся, то измените его.

Для этого проекта я использую digitalocean сервер.

1 Ответ

0 голосов
/ 12 сентября 2018

MySQL может обрабатывать 5 МБ BLOB-объектов.Если вы используете MEDIUMBLOB, он может обрабатывать до 16 МБ, а если вы используете LONGBLOB, он может обрабатывать до 4 ГБ.Прочитайте Обзор типа строки для получения подробной информации.

Кроме этого, те же плюсы и минусы применяются для помещения данных BLOB в базу данных.

  • Много данных BLOBконечно, делает базу данных намного больше.
  • Хранение всех данных вместе означает, что одна резервная копия базы данных включает все данные, включая «вложения».
  • Размещение BLOB-объектов в базе данных означает, что данные BLOB поддерживают транзакциюизоляция, откат, привилегии SQL и т. д. Если вы УДАЛИТЕ несколько строк, они также удаляют большие двоичные объекты в этих строках, но внешние файлы не удаляются автоматически.
...