Qual è la migliore politica di memorizzazione nella cache in Hibernate \ Grails. Memorizza nella cache tutte le entità e le query e no e come trovare la soluzione migliore?Grails Hibernate: per memorizzare o non memorizzare nella cache?
Qui il mio hibernate config.
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 config
<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"
/>
La politica di caching migliore è: nessun caching! ?? Dove sei in alto quando hai scritto questo? –
Hai letto quello che ho scritto? Se il tuo primo istinto di fronte a una lentezza è di mettere in cache le cose, allora è sbagliato. Se sei sicuro che il caching ti aiuterà, e lo hai misurato, il caching è un'alternativa. Senza sapere come funziona, quando funziona e perché funziona, è meglio non memorizzare nella cache. – jpkrohling
Ho letto quello che hai scritto e sono d'accordo con la procedura in 5 passaggi. Non sono d'accordo con l'approccio aggressivo al caching in generale e su come si avvia la discussione. Esistono molte attività dinamiche e migliaia di utenti che utilizzano database o altri servizi in siti Web di grandi dimensioni. Dire che il caching migliore non è il caching è assurdo! ... a meno che tu non parli del blog di mia nonna –