Лучший способ хранить и извлекать большие видеофайлы для веб-приложения? - PullRequest
6 голосов
/ 04 ноября 2010

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

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

Кто-то предложил хранить в BLOB-объектах MySQL.

Я запутался здесь!

Дайте мне знать, что вы, люди, думаете?

Ответы [ 6 ]

4 голосов
/ 04 ноября 2010

Как правило, хранение больших файлов в базе данных не считается хорошей практикой.См. этот вопрос и связанные с ним вопросы для получения дополнительной информации.

Вместо того, чтобы просто хранить на диске, вы можете рассмотреть возможность использования такой службы, как Rackspace Cloud Files или Amazon S3 , если позволяет ваш бюджет.

1 голос
/ 04 ноября 2010

Используйте свой идентификационный ключ в базе данных для сортировки файлов в папку.

Возьмите первый номер, поместите его в первый каталог, второй номер в следующий .. и так далее:

например:

18

/ видео / 1/8 / MyvideoFile

1892

/ видео / 1/8/9/2 / MyVideoFile

В качестве альтернативы вы также можете отсортировать их на различных серверах или кластерах NAS, сохранив номер сервера в вашей БД.

Надеюсь, это поможет.

0 голосов
/ 25 июля 2017

Так, например, у вас есть файл размером 50 ГБ, вы можете записать его на 50 дисках параллельно, по 1 ГБ на каждый диск, так что для записи вам потребуется всего 1 секунда, и аналогичным образом это займет 1 секунду длячитать с 50 дисков.Рассмотрим файловые системы, такие как HDFS.

0 голосов
/ 04 ноября 2010

Видео слишком велико для эффективного хранения в MySQL. Используйте файловую систему. Придумайте разумный способ сортировки видеофайлов в отдельные каталоги, чтобы в итоге не оказалось тысяч файлов в одном каталоге. Например, все файлы, начинающиеся с «а», попадают в каталог «а» и т. Д.

Если ваш сайт становится действительно большим, имеет смысл выгрузить видео в CDN, например Amazon Cloudfront .

0 голосов
/ 04 ноября 2010

Решение, которое потребовало бы небольших предварительных вложений времени с вашей стороны, но которое в долгосрочной перспективе избавило бы вас от хлопот ... использует сервис облачного хранения, такой как:

http://aws.amazon.com/s3/ или http://www.rackspacecloud.com/cloud_hosting_products/files

Это масштабируемо, и ваши серверы смогут сконцентрироваться на работе вашего веб-приложения.

0 голосов
/ 04 ноября 2010

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

...