sat
sat

Reputation: 14949

How to store videos in a PostgreSQL database?

I am storing image files (like jpg, png) in a PostgreSQL database. I found information on how to do that here.

Likewise, I want to store videos in a PostgreSQL database. I searched the net - some say one should use a data type such as bytea to store binary data.

Can you tell me how to use a bytea column to store videos?

Upvotes: 9

Views: 23507

Answers (3)

Pavel Stehule
Pavel Stehule

Reputation: 45835

We did some tests about practical limits of bytea datatype. There are theoretical limit 1GB. But practical limit is about 20MB. Processing larger bytea data eats too much RAM and encoding and decoding takes some time too. Personally I don't think so storing videos is good idea, but if you need it, then use a large objects - blobs.

Upvotes: 9

Erwin Brandstetter
Erwin Brandstetter

Reputation: 657122

I would generally not recommend to store huge blobs (binary large objects) inside PostgreSQL if referential integrity is not your paramount requirement. Storing huge files in the filesystem is much more efficient:
Much faster, less disk space used, easier backups.

I have written a more comprehensive assessment of the options you've got in a previous answer to a similar question. (With deep links to the manual.)

Upvotes: 17

zgpmax
zgpmax

Reputation: 2847

Without knowing what programming language you are using, I can only give a general approach:

  • Create a table with a column of type 'bytea'.
  • Get the contents of the video file into a variable.
  • Insert a row into that table with that variable as the data for the bytea column.

Upvotes: 0

Related Questions