Построение Hibernate dbmodel занимает время, если количество ключей в столбце jsonb увеличивается - PullRequest
0 голосов
/ 23 января 2020

У меня есть одна таблица с 7 столбцами jsonb и 13 простыми столбцами. 2 из столбцов jsonb имеют около 15 ключей каждый с типами данных составного значения. Сейчас количество рядов составляет около 15 тысяч. Когда я выбираю * в postgresql, я получаю результаты в среднем за 2 секунды .

Но когда я запрашиваю то же самое в моем приложении Hibernate с весенней загрузкой, я получаю в среднем около 40 секунд . Я просто использую метод JpaSpecificationExecutor.findAll (спецификация spe c, Pageable pageable) для получения результатов.

Если я опускаю эти столбцы, я могу получить результаты за 3 секунды.

Что я должен сделать, чтобы повысить производительность своего приложения.

Вот структура одного из тяжелых столбцов jsonb

`String userProfileUrl;
List<String> groupAsssociated;
Double rate;
String code;
LocalDateTime lastLoginTime;
//Product is an Enum here with 3 key value pairs
Map<Product, LocalDateTime> lastTxnTime;
Map<String, Double> usageLimit;
Double dailySmsLimit;
//DocumentInfo here is a separate class with4 keys each having String //values
List<DocumentInfo> documents;
Map<String, String> fees;
String grade;
Map<DocumentInfo, DeliveryInfo> deptInfo;
Boolean disableUser;
//ParentUserInfo is a separate class with 5 keys each having String values
List<ParentUserInfo> parentInfo;`

1 Ответ

0 голосов
/ 23 января 2020

Нужно больше подробностей о том, как вы отображаете столбцы jsonb. Если вы используете пользовательские типы гибернации, такие как https://github.com/vladmihalcea/hibernate-types, это приводит к некоторому снижению производительности из-за строк json в преобразование целевого объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...