Где сохранить видео файлы - база данных или диск - PullRequest
1 голос
/ 20 августа 2010

Полезно ли хранить видеофайлы в базе данных как объекты BLOB или сохранять их на физическом диске.

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

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

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

Спасибо

Ответы [ 2 ]

2 голосов
/ 20 августа 2010

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

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

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

0 голосов
/ 10 декабря 2012

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

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

...