Ho una tabella per circa 100.000 utenti al suo interno.Performance vista MySQL
primo caso:
explain select state, count(*) as cnt from users where state = 'ca'
Quando faccio un spiego piano per la query di cui sopra ottengo il costo come 5200
Secondo caso:
Create or replace view vw_users as select state, count(*) as cnt from users
Explain select cnt from vw_users where state = 'ca'
quando faccio un spiegano piano sulla seconda query ottengo il costo di 100.000.
Come funziona la clausola where nella vista? La clausola where viene applicata dopo che la vista recupera tutte le righe? Come posso risolvere questo problema?
tua definizione di vista manca il gruppo per clausola. –
Se non è possibile utilizzare l'algoritmo di fusione, ecco un lavoro che ho trovato utile: [Soluzione temporanea per i problemi di prestazioni delle viste temporanee] (http://www.mysqlperformanceblog.com/2010/05/19/a-workaround- for the performance-problems-of-temptable-views /) – landoncz