Пример файла persistence.xml для производственного экземпляра с использованием jpa2 и hibernate 3.6.x - PullRequest
6 голосов
/ 22 июня 2011
    <property name="hibernate.generate_statistics" value="true"/>

В производственном сценарии имеет смысл переключить вышеуказанный флаг на false. Какие другие флаги следует изменить, чтобы оптимизировать механизм гибернации для более быстрого доступа к базе данных MySQL.

Ответы [ 2 ]

2 голосов
/ 01 июля 2011

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

Возможно, вы не хотите слишком много регистрироваться (show_sql => установлено в false, format_sql => установлено в false, use_sql_comments => установлено в false).

Но на самом деле, это зависит, и вы должны измерить.

Также важно использовать и правильно настроить пул соединений. Здесь снова: используйте здравый смысл и меру.

Надеемся, эти ссылки окажутся полезными:

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/performance.html

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

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

А что касается кэширования: в зависимости от вашего варианта использования вы можете значительно увеличить производительность, если правильно сконфигурируете кэш второго уровня (например, Ehcache). Это опять-таки означает: подумайте о том, что можно кэшировать, а что нет, а также о том, как долго и как долго ваши кэши могут и должны быть. Так что, действительно, действительно зависит:)

0 голосов
/ 01 июля 2011

Я Google для различных комбинаций полезных ключевых слов, и я придумал несколько полезных ссылок, чтобы указать вам правильное направление.Просто помните, что не будет ОДНОГО, ОПРЕДЕЛЕННОГО списка «правильных» свойств для производственной среды.Люди будут рекомендовать вещи, основываясь на своем опыте, но вам придется испытать их и руководствоваться здравым смыслом, чтобы выяснить, что лучше для вас.

Документация Hibernate с доступными настраиваемыми свойствами

Пример файла persistence.xml для MySql

Единственное свойство, которое мне приходилось сознательно помнить, чтобы изменить для конфигураций PROD, - это свойство hibernate.hbm2ddl.auto, которое позволяет Hibernate напрямуюизмените схему вашей БД, автоматически выполняя операторы DDL.Для тестовых БД часто имеет смысл использовать значение «create-drop», чтобы тестовый SessionFactory создавал необходимые вам таблицы или изменял существующие, чтобы соответствовать возможным, недавним изменениям схемы.На prod вы НЕ хотите, чтобы Hibernate связывался с вашей схемой.Даже ребята из Hibernate предупреждают, что не следует использовать эту функцию в производственной среде, потому что целостность данных не гарантируется.Значение, которое вы должны использовать для prod, это «validate», который просто проверит, что БД, к которой вы подключаетесь, имеет правильную схему, с которой сопоставляются ваши объекты Hibernate, и не сможет загрузить SessionFactory в случае расхождений.

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