2012-01-23 3 views
4

Я хранил файлы изображений (например, jpg, png) в базе данных PostgreSQL. Я нашел information on how to do that here.Как хранить видео в базе данных PostgreSQL?

Аналогичным образом, я хочу хранить видео в базе данных PostgreSQL. Я искал сеть - некоторые говорят, что для хранения двоичных данных следует использовать тип данных, такой как bytea.

Можете ли вы рассказать мне, как использовать столбец bytea для хранения видео?

+0

Насколько я знаю, в PostgreSQL нет типа 'IMAGE', если вы его не создали с помощью' CREATE TYPE' (предположительно на основе 'BYTEA'). Как сохранить видео в отличие от хранения изображения? – Bruno

+0

Извините, не ошибайтесь. Я не хочу хранить видеоролик. Я хочу хранить видео в базе данных с помощью bytea. – sat

ответ

0

Не зная, какой язык программирования вы используете, я могу дать только общий подход:

  • Создать таблицу с колонкой типа «BYTEA».
  • Получите содержимое видеофайла в переменной.
  • Вставьте строку в эту таблицу с этой переменной в качестве данных для столбца bytea.
11

я обычно не рекомендую хранить огромные сгустки (большие двоичные объекты) внутри PostgreSQL, если ссылочная целостность не является вашим первостепенным требованием. Хранение огромных файлов в файловой системе намного эффективнее:
Гораздо быстрее, меньше места на диске, проще резервное копирование.

Я написал более подробную оценку вариантов, которые у вас есть в previous answer, к аналогичному вопросу. (С глубокими ссылками на руководство.)

+1

приятный ответ .... – sat

6

Мы провели несколько тестов о практических ограничениях типа данных bytea. Есть теоретический предел 1 ГБ. Но практический предел составляет около 20 МБ. Обработка больших данных bytea требует слишком большого объема оперативной памяти, а кодирование и декодирование занимает некоторое время. Лично я не думаю, что хранение видео - хорошая идея, но если вам это нужно, используйте большие объекты - blobs.

Смежные вопросы