Sto cercando di creare una vista di una tabella che evidenzi i dati che soddisfano un criterio specifico. Ad esempio, se ho una tabella con valori interi, voglio che la mia vista mostri le righe che hanno un valore maggiore di 100. So come ottenere ciò creando una vista su una tabella, tuttavia la vista è dinamica? Ho provato questo in MySQL e sembra essere vero. Ma se il mio tavolo ha più di 1000 file, è efficiente? La vista continuerà ad aggiornare "dinamicamente" a qualsiasi modifica nella tabella originale?Le viste MySql sono dinamiche ed efficienti?
risposta
Fondamentalmente, ci sono fondamentalmente 2 types of views in MySQL.
Unire Visualizzazioni
Questo tipo di vista fondamentalmente solo ri-scrive le query con SQL della vista. Quindi è una scorciatoia per scrivere le domande da solo. Ciò non offre alcun reale vantaggio in termini di prestazioni, ma semplifica la scrittura di query complesse e facilita la manutenzione (poiché se la definizione della vista cambia, non è necessario modificare 100 query sulla vista, ma solo una definizione).
TempTable Visualizzazioni
Questo tipo di vista crea una tabella temporanea con la query da SQL della vista. Offre tutti i vantaggi della vista unione, ma riduce anche il tempo di blocco sulle tabelle della vista. Pertanto su server ad alto carico potrebbe avere un guadagno di prestazioni piuttosto significativo.
C'è anche la "non definita" tipo di visualizzazione (il default), che cerchiamo di MySQL scegliere ciò che si pensa è il tipo in fase di query migliore ...
Ma si noti qualcosa di importante da notare, è che MySQL non ha alcun supporto per materialized views. Quindi non è come Oracle, dove una visione complessa aumenterà significativamente le prestazioni delle query. Le query delle viste vengono sempre eseguite in MySQL.
Per quanto riguarda l'efficienza, le viste in MySQL non aumentano o diminuiscono l'efficienza. Sono lì per semplificarti la vita quando scrivi e mantieni le tue domande. Ho usato viste su tabelle con centinaia di milioni di righe, e hanno funzionato bene ...
ok, questo ha senso. Grazie ircmaxell! – Santiago
utilizzo delle viste Le prestazioni influiscono negativamente sul fatto che MySQL non gestisce bene le query nidificate, ma ha solo funzionalità molto limitate per spingere i predicati. OTOH Può fare un ottimo lavoro di ottimizzazione di una query senza nidificazione SELECT. – symcbean
@symcbean: hai qualche riferimento per riportare quella richiesta? Sarei curioso di vederlo (legittimamente) ... – ircmaxell
mysql non utilizza indici su tabelle temporanee ... quindi può influire negativamente sulle prestazioni.
- 1. Cosa sono le viste in MySQL?
- 2. Quanto sono efficienti le proiezioni di MongoDB?
- 3. PHP e MySQL miglior modo per conteggiare le pagine viste per le pagine dinamiche
- 4. Tutte le lingue dinamiche sono tipografiche?
- 5. Quando i QLC sono molto meno efficienti?
- 6. Gli stili CSS completi sono efficienti?
- 7. Sbarazzarsi delle viste [dinamiche] JavaScript in Visual Studio
- 8. sono viste aggiornati
- 9. Il design del materiale di bootstrap non funziona correttamente con le viste angolari dinamiche
- 10. Foreign Keys ed errori MySQL
- 11. Cosa sono le "astrazioni"?
- 12. In inglese semplice, quali sono le viste generiche di Django?
- 13. Python definire le funzioni dinamiche
- 14. le variabili dinamiche in perl
- 15. Utilizzo di viste MySQL nelle applicazioni PHP
- 16. Come ottenere un elenco di viste MySQL?
- 17. Le risorse a livello di applicazione dinamica non sono dinamiche quando sono ospitate in ElementHost
- 18. Quali sono le chiavi esterne MySQL?
- 19. Le transazioni nidificate sono consentite in MySQL?
- 20. Elenca tutte le tabelle MySQL ed esclude una specifica
- 21. python: quali sono le tecniche efficienti per trattare i dati profondamente annidati in modo flessibile?
- 22. MySQL viste o vs clausola IN
- 23. Se le colonne dinamiche sono scoraggiate in cassandra 1.2/Cql3, allora come è meglio di Mysql in funzionalità?
- 24. I costruttori predefiniti definiti dall'utente sono meno efficienti?
- 25. Quali sono le differenze tra livelli ed effetti estensibili?
- 26. Come cancellare tutte le viste dal database mysql usando mysql query/command?
- 27. Si basa su pochi file di grandi dimensioni, in quanto le dipendenze sono efficienti?
- 28. diagnosticare ed evitare picchi di cpu MySQL
- 29. Backup di viste con Mysql Dump
- 30. Le migliori lingue dinamiche per OpenGL/grafica generale
Vedere http://stackoverflow.com/q/7922675/632951 – Pacerier