Зачем вообще использовать Blob, если я могу сохранять файловые пути в базе данных и реальные файлы в хранилище? - PullRequest
0 голосов
/ 06 сентября 2018

Я знаю, что blob - это тип данных для двоичных данных, так как integer - это тип данных для int. Как говорится, он используется для хранения файлов непосредственно в базе данных (мы перемещаем наш аудиофайл в BLOB-объект и сохраняем этот BLOB-объект в базе данных).

Вопрос 1) зачем хранить blob для аудио, если я могу просто поместить аудио в хранилище, например, путь /var/www/audio.mp3 и в базе данных, я храню имя_пути /var/www/audio.mp3?

Вопрос 2) что лучше? как netflix хранит фильмы? просто капли или что?

Вопрос 3) Любопытно, есть ли какие-либо недостатки или недостатки, если бы вы могли просто дать мне идеи, чтобы я знал, когда их использовать.

Ответы [ 3 ]

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

Помещение большого двоичного объекта в базу данных, а не в файл, позволяет увеличивать нагрузку до нескольких серверов. Если вы поместите данные в файлы, вам придется копировать файлы между сервером. Большинство баз данных имеют встроенные функции репликации, что не так просто для обычных файлов.

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

Лучше использовать внешнее хранилище / cdn для обслуживания такого большого контента.

Как работает Netflix и наши? Они загружают контент на внешнее ведро. е. S3 и запишите имя файла в БД для идентификации. В соответствии с частотой доступа к файлу пользователя, этот файл кешируется на CDN / крайнем местоположении. Пользователь получит потрясающий опыт, пока контент-сервер находится в ближайшем краю

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

С BLOB-объектов вы можете хранить все виды вещей. Вы общаетесь с API через SOAP или JSON и хотите сохранить его в базе данных? Используйте каплю. Хотите войти, что пользователь заполнил в форму, когда он бросил исключение? Храните весь пост как блоб. Вы можете сохранить все как есть. Это удобно для регистрации, если у вас разные форматы данных. Я знаю API, который ожидает некоторые данные через SOAP, а некоторые как JSON. Для записи сообщения я использую blob, потому что ответом может быть XML, JSON, число (http код 203 для пустого, но принятого) или исключение в виде массива.

...