我开始使用Hibernate 3.2和Postgresql 8.4的应用程序.我有一些被映射为@Basic(= PG bytea)的字节[]字段和映射为@Lob(= PG Large Object)的其他字节.为什么不一致?因为我是一个Hibernate noob.
现在,这些字段最大为4 Kb(但平均值为2-3 kb). Postgresql文档提到,当字段很大时,LO是很好的,但是我没有看到“大”的意思.
我已经升级到Postgresql 9.0与Hibernate 3.6,我被卡住将注释更改为@Type(type =“org.hibernate.type.PrimitiveByteArrayBlobType”).这个bug已经提出了一个潜在的兼容性问题,我最终发现,与正常的领域相比,大对象是一个很难处理的问题.
所以我正在考虑把它全部改为bytea.但是我担心字节字段是以十六进制编码的,所以在编码和解码中有一些开销,这会损害性能.
有没有良好的基准表现这两个?
有人做了切换,看到了不同吗?
解决方法
But I am concerned that bytea fields
are encoded in Hex
字节输入可以是十六进制或转义格式,这是您的选择.存储将一样.从版本9.0开始,输出默认值为十六进制,但您可以通过编辑参数bytea_output进行更改.
我没有看到任何基准.