Я запустил приложение с Hibernate 3.2 и PostgreSQL 8.4.У меня есть byte[]
поля, которые были отображены как @Basic
(= PG bytea), а другие - как @Lob
(= PG Large Object).Почему несоответствие?Поскольку я был нубером Hibernate.
Теперь эти поля составляют максимум 4 Кб (но в среднем это 2-3 кб).В документации PostgreSQL упоминалось, что LO хороши, когда поля большие, но я не понял, что означает «большой».
Я обновился до PostgreSQL 9.0 с Hibernate 3.6 и застрял, чтобы изменить аннотациюдо @Type(type="org.hibernate.type.PrimitiveByteArrayBlobType")
.Эта ошибка выдвинула потенциальную проблему совместимости, и в конце концов я обнаружил, что с большими объектами приходится сталкиваться с болью по сравнению с обычным полем.
Так что я думаю об изменении всего этого на bytea
,Но я обеспокоен тем, что поля bytea
кодируются в шестнадцатеричном формате, поэтому при кодировании и декодировании возникают некоторые накладные расходы, и это может ухудшить производительность.
Существуют ли хорошие показатели производительности обоих?Кто-нибудь сделал переключатель и увидел разницу?