Java 使用jpa2和hibernate 3.6.x的生产实例的persistence.xml示例

Java 使用jpa2和hibernate 3.6.x的生产实例的persistence.xml示例,java,hibernate,jpa-2.0,Java,Hibernate,Jpa 2.0,在生产场景中,将上述标志切换为false是有意义的。还有哪些标志需要修改,以便hibernate引擎能够以更快的速度访问MySQL数据库。我在Google上搜索了各种有用的关键字组合,并提供了一些有用的链接,为您指明正确的方向。请记住,对于生产环境,不会有一个单一的、确定的“正确”属性列表。人们会根据自己的经验推荐一些东西,但你必须尝试一下,并运用常识找出最适合你的东西 我必须有意识地记住要为PROD configs更改的唯一属性是hibernate.hbm2ddl.auto属性,它允许hi

在生产场景中,将上述标志切换为false是有意义的。还有哪些标志需要修改,以便hibernate引擎能够以更快的速度访问MySQL数据库。

我在Google上搜索了各种有用的关键字组合,并提供了一些有用的链接,为您指明正确的方向。请记住,对于生产环境,不会有一个单一的、确定的“正确”属性列表。人们会根据自己的经验推荐一些东西,但你必须尝试一下,并运用常识找出最适合你的东西

我必须有意识地记住要为PROD configs更改的唯一属性是
hibernate.hbm2ddl.auto
属性,它允许hibernate通过自动执行DDL语句直接更改数据库的模式。对于测试数据库,使用“create drop”值通常是有意义的,这样测试会话工厂将为您创建必要的表,或者更改现有表以匹配可能的、最近的模式更改。在prod上,您不想让Hibernate干扰您的模式。甚至Hibernate人员也警告不要在生产环境中使用此功能,因为数据完整性得不到保证。prod应该使用的值是“validate”,它将简单地验证您连接到的数据库是否具有您的Hibernate实体映射到的正确架构,如果存在差异,它将无法加载SessionFactory。

这取决于:)您可以设置缓存大小、获取深度(对于外部联接),获取批量大小和更多内容

您可能不想记录太多日志(show_sql=>set为false,format_sql=>set为false,use_sql_comments=>set为false)

但实际上,这要看情况而定,你必须衡量

使用和正确配置连接池也很重要。 这里再次强调:使用常识和衡量标准

希望这些链接将被证明是有用的:

关键的一点是使模型正确。如果生成了许多执行大量联接的sql请求,那么性能将是一个问题。因此,如果性能非常关键,您必须花一些时间考虑规范化,或者实际上不要在实体关系建模中进行太多规范化

此外,集合及其建模/处理方式在性能方面也起着重要作用

就缓存而言:根据您的用例,如果您正确配置二级缓存(例如Ehcache),您可以极大地提高性能。这同样意味着:想想什么可以缓存,什么不可以缓存,缓存的寿命有多长,应该有多大。所以这真的,真的取决于:)

    <property name="hibernate.generate_statistics" value="true"/>