gpt4 book ai didi

hibernate - Grails\hibernate : To cache or not to cache?

转载 作者:行者123 更新时间:2023-12-04 17:04:53 32 4
gpt4 key购买 nike

Hibernate\Grails 中最好的缓存策略是什么?是否缓存所有实体和查询以及如何找到最佳解决方案?

这是我的 hibernate 配置。

hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'org.hibernate.cache.EhCacheProvider'
connection.useUnicode = true
connection.characterEncoding = 'UTF-8'
connection.provider_class = 'org.hibernate.connection.C3P0ConnectionProvider'
dialect = 'org.hibernate.dialect.MySQL5InnoDBDialect'
order_updates = true
c3p0.min_size = 5
c3p0.max_size = 20
c3p0.max_statements = 20 * 10
c3p0.idle_test_period = 15 * 60
}

Ehcache 配置
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="120"
timeToLiveSeconds="120"
overflowToDisk="true"
maxElementsOnDisk="10000000"
diskPersistent="false"
diskExpiryThreadIntervalSeconds="120"
diskSpoolBufferSizeMB="100"
memoryStoreEvictionPolicy="LRU"
/>

<cache
name="org.hibernate.cache.StandardQueryCache"
maxElementsInMemory="50"
eternal="false"
timeToLiveSeconds="120"
overflowToDisk="true"
/>

最佳答案

最好的缓存策略是:不缓存。说真的,缓存(和任何优化)应该只用于解决现有问题。如果您没有性能问题,请不要使用缓存。如果您确实有性能问题,那么应用这个简单的 5 步过程来解决性能问题:

  • 措施。
  • 措施。
  • 优化(例如添加缓存)
  • 措施。
  • 措施。

  • 请注意,如果您不了解缓存在 Hibernate 中的工作原理,最终可能会导致性能不佳,而不是改进它。此外,即使您了解缓存在 Hibernate 中的工作原理,也可能存在其他影响性能的影响,导致数据库往返比查找缓存更快。这就是为什么你应该在做“改进”之前和之后进行测量。

    关于hibernate - Grails\hibernate : To cache or not to cache?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4804409/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com