MySQL ci consente di creare istruzioni di selezione con l'utilizzo delle opzioni SQL_CACHE
e SQL_NO_CACHE
. Queste opzioni influiscono sulla memorizzazione nella cache dei risultati della query nella cache delle query. Ma per quale query è meglio usare l'opzione SQL_CACHE
e per la quale SQL_NO_CACHE
? O forse è meglio non usarlo affatto?Best practice MySQL per utilizzare SQL_CACHE e SQL_NO_CACHE
risposta
Generalmente, non dovresti doverlo usare affatto. SQL_CACHE
è necessario solo se le query non vengono memorizzate nella cache per impostazione predefinita, che sono nella configurazione predefinita. SQL_NO_CACHE
è utile se si conosce che una particolare query non verrà più utilizzata nel prossimo futuro, specialmente se il set di risultati è ampio. L'obiettivo è evitare di ingombrare la cache con risultati che non saranno più necessari.
Uso SQL_NO_CACHE durante il debug della velocità della query.
Si prega di elaborare. – Pacerier
Quando si testano le query, è utile misurare il loro tempo di esecuzione, senza che vengano recuperate dalla cache. Il recupero dalla cache è molto più rapido del recupero dal database, quindi confrontare i risultati senza sapere se proviene da DB o cache non ha senso. –
- 1. php e mysql, best practice
- 2. Best practice per la crittografia MySQL?
- 3. Best practice per il backup MySQL
- 4. PHP MySQL Registrazione e gestione degli errori - best practice
- 5. Best practice per SQLite DB e ContentProvider
- 6. Best practice per l'autenticazione dell'abra?
- 7. Best practice per un sistema di controllo delle versioni mysql
- 8. Best practice NGen e Gacutil
- 9. jQuery Standard e Best Practice
- 10. Best practice per la memorizzazione efficiente hash MD5 in mysql
- 11. Best practice per riutilizzare SqlConnection
- 12. Best practice per denominare sottoclassi
- 13. Best practice per compatibilità legacy
- 14. per best practice di loop
- 15. Registrazione per ASP.NET - Best practice
- 16. MongoDB best practice per referenziamento
- 17. Best practice per l'animazione Wpf
- 18. API Best practice per Throttling
- 19. UISegmentedControl Best Practice
- 20. Best practice per l'utilizzo float PHP
- 21. Best practice: Django multilingua
- 22. Best practice Sitecore
- 23. Marionette controller Best Practice
- 24. DTO: best practice
- 25. Selenio, best practice Nunit?
- 26. Best practice di RestAngular
- 27. Best practice per un'applicazione opensource portatile C++
- 28. Git Setup Best practice
- 29. Hibernate Performance Best Practice?
- 30. Integrazione continua - Best practice
In particolare per quanto riguarda SQL_NO_CACHE, utilizzare questo in cui il caching del risultato non crea un vantaggio per il riutilizzo successivo. La ragione per cui dovresti farlo è che se hai molte query che memorizzano nella cache ma non vengono mai utilizzate, rallenterai mySQL perché spende sempre più tempo a gestire la cache in modo non appropriato. Ciò diventa particolarmente evidente quando le persone impostano dimensioni query_cache molto grandi mentre il tempo di svuotare le voci vecchie aumenta con le dimensioni. Questo è il motivo per cui esiste l'opzione 0,1,2 per modificare il comportamento di query_cache in mySQL. – Ross
@ Michael, in realtà il configuratino consigliato per i server di produzione è di disattivare ** la cache di query **. – Pacerier
@Pacerier Dipende molto dal carico di lavoro. –