在PostgreSQL中存储图像

好吧,所以我正在开发一个应用程序,它将使用Linux后端运行Postgresql来提供图像到一个Windows的前端用C#.NET编写的框,虽然前端应该不重要。我的问题是:

>在Postgres中处理存储图像的最好方法是什么?

每个图像大约4-6百万像素,我们的存储量高达3000个。也许值得注意的是:这不是一个Web应用程序,最多只有两个前端同时访问数据库

Re jcoby的答案:

bytea是“正常”列还意味着当您获取它时,该值被完全读入内存。相反,Blob,你可以流入stdout。这有助于减少服务器内存占用。特别是,当您存储4-6 MPix图像。

备份Blob没有问题。 pg_dump提供了“-b”选项以将大对象包括在备份中。

所以,我更喜欢使用pg_lo_ *,你可能猜到。

Re Kris Erickson的答案:

我会说相反:)。当映像不是您存储的唯一数据时,不要将它们存储在文件系统上,除非您必须这样做。这样的好处是始终确保数据的一致性,并使数据“整体”(DB)。 BTW,Postgresql是伟大的保持一致性。

然而,真的,现实通常太性能要求;-),它推送您从文件系统提供二进制文件。但即使如此,我倾向于使用DB作为二进制的“主”存储,所有其他关系一致链接,同时提供一些基于文件系统的缓存机制进行性能优化。

相关文章

来源:http://www.postgres.cn/docs/11/ 4.1.1. 标识符和关键词 SQL标识符和关键词必须以一个...
来源:http://www.postgres.cn/docs/11/ 8.1. 数字类型 数字类型由2、4或8字节的整数以及4或8...
来源:http://www.postgres.cn/docs/11/ 5.1. 表基础 SQL并不保证表中行的顺序。当一个表被读...
来源:http://www.postgres.cn/docs/11/ 6.4. 从修改的行中返回数据 有时在修改行的操作过程中...
来源:http://www.postgres.cn/docs/11/ 13.2.1. 读已提交隔离级别 读已提交是PostgreSQL中的...
来源:http://www.postgres.cn/docs/11/ 9.7. 模式匹配 PostgreSQL提供了三种独立的实现模式匹...