Когда использовать кэширование Hibernate (второй уровень)? - PullRequest
3 голосов
/ 04 марта 2011

Это основной вопрос о Hibernate Caching, но я должен быть уверен, прежде чем идти вперед.Раньше я использовал query кэширование в небольших проектах, но теперь я участвую в большом проекте, так что это:

В действительно больших проектах (национальных), что вы предлагаете, когда использовать * 1005?* Кеширование в Hibernate?

note : * Платформа - Struts2, Spring3, Hibernate, Java6 WAS6 *

Ответы [ 3 ]

1 голос
/ 04 марта 2011

Кэш 2-го уровня используется, когда ваши отношения с БД сложны, как в этом случае вы знаете, что попадание в БД каждый раз будет дорогостоящей операцией. В таких случаях производительность приложения может быть увеличена за счет использования кэша.

1 голос
/ 04 марта 2011

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

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

1 голос
/ 04 марта 2011

Я считаю, что вы имеете в виду кэш второго уровня, то есть кеш, охватывающий более одного сеанса Hibernate.

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

Я не уверен, включает ли ваш вопрос сущностный кеш, но вам определенно следует его изучить. Этот кэш включает в себя отдельные объекты или их коллекции независимо от контекста (то есть конкретных запросов). Я бы сказал, что это самый полезный тип кэширования.

Чем больше ваш TPS или количество объектов, тем больше вы выиграете от использования такого кэша. Когда вы сталкиваетесь с несколькими тысячами запросов на транзакцию, выборка объектов из кэша (обычно в ОЗУ), а не запросы к базе данных и сопоставление, может сэкономить много драгоценного времени.

Будьте осторожны, когда вам нужны 100% -ые свежие (онлайн) результаты.

Смотри также:

Повышение производительности в документах Hibernate.

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