2011-01-26 4 views
5

Hibernate \ Grails에서 가장 좋은 캐싱 정책은 무엇인가? 모든 엔티티와 쿼리 캐시 여부 및 최상의 솔루션을 찾는 방법?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" 
/> 

답변

11

가장 좋은 캐싱 정책은 없다 : 캐싱. 진지하게, 캐싱 (및 모든 최적화)은 기존 문제점을 해결하기 위해서만 수행되어야합니다. 성능에 문제가 없으면 캐싱을 사용하지 마십시오. 성능 문제가있는 경우 성능 문제를 해결하기 위해이 간단한 5 단계 절차를 적용하십시오.

  • 측정.
  • 조치.
  • 최적화 (예 : 캐싱 추가)
  • 측정.
  • 조치.
  • 최대 절전 모드에서 캐싱이 어떻게 작동하는지 이해하지 못한다면 성능이 저하 될 수 있습니다. 또한 Hibernate에서 캐싱이 어떻게 작동하는지 이해하더라도 성능에 영향을주는 다른 효과가있어 캐시를 찾는 것보다 데이터베이스 왕복 시간이 빠릅니다. 그래서 "개선"을하기 전후에 측정해야합니다.

    +0

    최상의 캐싱 정책은 다음과 같습니다. 캐싱 없음! ?? 이걸 썼을 때 어디 갔어? –

    +0

    내가 쓴 것을 읽었습니까? 느린 속도에 직면했을 때의 첫 번째 본능이 사물을 캐쉬하는 것이면 잘못되었습니다. 캐싱이 도움이된다고 확신하고 그것을 측정 한 경우 캐싱이 대안입니다. 어떻게 작동하는지, 작동 할 때 그리고 작동하는 이유를 몰라도 캐시하지 않는 것이 좋습니다. – jpkrohling

    +0

    나는 당신이 쓴 것을 읽었으며 5 단계 절차에 동의합니다. 나는 일반적으로 캐싱에 대한 공격적인 접근 방식과 당신의 주장을 어떻게 시작 하느냐에 동의하지 않는다. 대규모 웹 사이트에는 수많은 동적 활동과 수천 명의 사용자가 데이터베이스 또는 기타 서비스를 사용합니다. 최고의 캐싱이 아닌 캐싱을 말하는 것은 터무니 없다! ... 당신이 할머니의 블로그에 대해서 말하지 않는다면 –

    관련 문제