如何在PostgreSQL数据库中存储视频?

9
我正在将图片文件(如jpg,png)存储在PostgreSQL数据库中。我在这里找到了关于如何做到这一点的信息
同样地,我想将视频存储在PostgreSQL数据库中。我在网上搜索了一下-有些人说应该使用诸如bytea之类的数据类型来存储二进制数据。
你能告诉我如何使用bytea列来存储视频吗?

据我所知,PostgreSQL 中没有 IMAGE 类型,除非您使用 CREATE TYPE 自己创建了它(可能基于 BYTEA)。存储视频与存储图像有何不同? - Bruno
抱歉,请不要误解我。我不想存储视频和图像。我想使用bytea将视频存储在数据库中。 - sat
3个回答

17

如果你的首要需求不是引用完整性,我通常不建议将大型二进制对象(BLOB)存储在PostgreSQL中。将大文件存储在文件系统中会更加高效:速度更快,磁盘空间使用更少,备份也更容易。

我曾在以前的答案中对你所拥有的选项进行了更全面的评估。(并提供了指向手册的深层链接。)


9

我们进行了一些关于bytea数据类型实际限制的测试。理论上的限制是1GB,但实际上的限制约为20MB。处理更大的bytea数据会占用太多RAM,并且编码和解码也需要一定时间。个人认为将视频存储在其中不是一个好主意,但如果需要,则使用大型对象 - blobs。


0

不知道您使用的编程语言是什么,我只能给出一个通用的方法:

  • 创建一个带有“bytea”类型列的表。
  • 将视频文件的内容存储到一个变量中。
  • 插入一行到该表中,并将该变量作为“bytea”列的数据。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接