Кеш второго уровня Java Hibernate включен по умолчанию? - PullRequest
0 голосов
/ 14 октября 2018

Кэш второго уровня гибернации включен по умолчанию?

У меня ничего не настроено для этого в моем org.hibernate.cfg.Configuration, значит ли это, что он не используется.

Если бы я захотел использовать его, возможно, улучшенная производительность достигла бы за счет увеличения использования памяти или просто использования дискового пространства.Одна из основных причин использования базы данных заключается в том, что мое приложение может масштабироваться и не требует все больше и больше памяти.

1 Ответ

0 голосов
/ 15 октября 2018

Кэш второго уровня гибернации включен по умолчанию?

Это не так.Кэш второго уровня - это отдельная библиотека кеширования, которую необходимо добавить в качестве зависимости и настроить, например, EHCache, hazelcast, cache2k, ...

Если бы я захотел использовать ее,возможно, улучшенная производительность достигается за счет увеличения использования памяти или просто за счет использования дискового пространства.

Суть кэширования заключается в использовании большего объема памяти для меньших внешних запросов.В зависимости от вашего приложения это может иметь разные эффекты.Если ваше приложение не запрашивает некоторые строки чаще, чем другие, и у вас много данных, кэширование может оказаться неэффективным.Однако это очень редко.

Вы можете ограничить объем памяти, используемой кешем, поэтому при заполнении используемая память будет довольно постоянной.

Одна из основных причиниспользование базы данных позволяет моему приложению масштабироваться и не требует все больше и больше памяти.

«Масштаб» означает разные вещи.Это может означать, что ваше приложение должно обрабатывать все больше и больше данных, или это может означать, что ваше приложение должно справляться с большим и большим количеством пользователей.Или оба.Кэширование помогает вам справляться с большим количеством пользователей и обрабатывать запросы с меньшей задержкой, что повышает удобство работы с пользователем.

При небольших размерах кэша может случиться так, что потребление памяти будет даже ниже.Поскольку требуется меньше активности для запроса данных из базы данных, у вас будет меньше активности GC на виртуальной машине, и вам потребуется меньше соединений с базой данных и других ресурсов.

Мой совет:

Мой опыт говорит:что даже очень маленький кеш, скажем, 1000 записей, имеет большое влияние.Это потому, что 99% приложений имеют некоторые горячие точки данных, которые запрашиваются очень часто.Невозможно ответить на ваш вопрос на теоретическом уровне, не зная вашего приложения.Лучший способ - это попробовать.

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