Вопрос

Хорошей идеей хранить видеофайлы в базе данных в качестве объектов Blob или хранить их на физическом диске.

Это для сайта, похожий на YouTube, где пользователи могут загрузить свое видео и просматривать их

База данных будет MySQL

Какой вариант лучше и почему

Спасибо

Это было полезно?

Решение

Pro MySQL: - Капля может подвергаться иностранным ключам и, таким образом, сохраняя избыточную базу данных, а не сохранение в файловой системе. В этом случае вы должны запрограммировать удаление файла. - FineGrained User разрешения.

Con: - MySQL не работает бесплатно, он поставляется с накладными расходами, а не в подаче файловой системы. - WebServers не может напрямую обслуживать капли из базы данных. Это означает, что PHP придется опосредовать процесс. Когда капля загружается из MySQL в PHP, использование памяти будет по крайней мере таким же большим, как капля. Таким образом, в вашем случае, когда файлы могут столкнуться с сотнями MB, это создало бы огромное напряжение на веб -сервер.

Во всей реальности MySQL не будет использоваться для сохранения файлов. Blobs в основном используются для сэкономить на лауреатах сериализованных данных, таких как кэши.

Другие советы

Я использую NFS для хранения медиа -контента примерно с 5 лет без проблем с точки зрения хранения. Манипулирование, кодирование и сохранение управляются с помощью FFMPEG, сценариев PHP и рабочих мест CRON. Метаданные видео хранятся в базе данных MySQL, а веб -доставка предоставляется через Nginx (через крепление только для чтения NFS). Размер видеофайлов до 2 ГБ в этой среде. Вероятно, я могу идти быстрее по другому двигателю БД, но отходы в реальном времени связаны с процессом кодирования, а не для сохранения файлов.

Когда я сохраняю тысячи маленьких изображений (например, аватары), я когда -либо использую MySQL, чтобы просто хранить метаданные файлы (путь изображения и другие свойства), а не сохранять файл в поле Blob, которые могут слишком сильно замедлить DB на протяжении тяжелых запросов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top