Estoy buscando crear una vista de una tabla que resalte los datos que cumplan con un criterio específico. Por ejemplo, si tengo una tabla con valores enteros, quiero que mi vista muestre las filas que tienen un valor mayor que 100. Sé cómo lograr esto al crear una vista en una tabla, sin embargo, ¿la vista es dinámica? He probado esto en MySQL y parece ser cierto. Pero si mi mesa tiene más de 1000 filas, ¿es esto eficiente? ¿La vista aún se actualizará "dinámicamente" a cualquier cambio en la tabla original?¿Las vistas de MySql son dinámicas y eficientes?
Respuesta
Básicamente, hay básicamente 2 types of views en MySQL.
Combinar Vistas
Este tipo de vista, básicamente, sólo vuelve a escribir sus consultas con SQL de la vista. Por lo tanto, es una forma abreviada de escribir las consultas usted mismo. Esto no ofrece ningún beneficio de rendimiento real, pero facilita la escritura de consultas complejas y facilita el mantenimiento (ya que si la definición de la vista cambia, no es necesario cambiar 100 consultas frente a la vista, solo la definición).
Vistas TempTable
Este tipo de vista crea una tabla temporal con la consulta de SQL de la vista. Tiene todos los beneficios de la vista de fusión, pero también reduce el tiempo de bloqueo en las tablas de la vista. Por lo tanto, en servidores altamente cargados podría tener una ganancia de rendimiento bastante significativa.
También está el "Indefinido" tipo de vista (por defecto), que vamos a MySQL recoger lo que piensa que es el mejor tipo en tiempo de consulta ...
Pero tenga en cuenta algo importante tener en cuenta, es que MySQL no tiene soporte para materialized views. Por lo tanto, no es como Oracle, donde una vista compleja aumentará significativamente el rendimiento de las consultas en su contra. Las consultas de las vistas siempre se ejecutan en MySQL.
En cuanto a la eficiencia, las vistas en MySQL no aumentan ni disminuyen la eficiencia. Están ahí para hacerte la vida más fácil al escribir y mantener consultas. He usado vistas en tablas con cientos de millones de filas, y han funcionado bien ...
bien, eso tiene sentido. Gracias ircmaxell! – Santiago
utilizando vistas Afecta el rendimiento, ya que MySQL no responde bien a las consultas anidadas, solo tiene capacidades muy limitadas para empujar predicados. OTOH Puede hacer un muy buen trabajo optimizando una consulta sin anidamiento SELECT. – symcbean
@symcbean: ¿Tiene alguna referencia para respaldar ese reclamo? Tengo curiosidad por verlo (legítimamente) ... – ircmaxell
mysql no usa índices en tablas temporales ... por lo que puede afectar gravemente su rendimiento.
- 1. ¿Qué son las vistas en MySQL?
- 2. ¿Son las pilas de Bitnami eficientes?
- 3. ¿Cómo son las bases de datos eficientes?
- 4. ¿Actualizar las vistas de MySQL?
- 5. ¿Las consultas dinámicas de mysql con sql escapan son tan seguras como las declaraciones preparadas?
- 6. Struct en C, ¿son eficientes?
- 7. PHP y MySQL la mejor manera de contar páginas vistas para páginas dinámicas
- 8. ¿Qué son vistas para colecciones y cuándo las quieres usar?
- 9. ¿Los métodos estáticos son más eficientes?
- 10. Crear comentarios para las vistas en mysql
- 11. ¿Son eficientes los estilos CSS totalmente calificados?
- 12. ¿Las plantillas de sitios de SharePoint son realmente menos eficientes que las definiciones de sitios?
- 13. ¿Las declaraciones preparadas dinámicas son malas? (con php + mysqli)
- 14. ¿Las variables locales en Fortran 77 son estáticas o dinámicas?
- 15. ¿Las declaraciones condicionales en las vistas son malas noticias?
- 16. en postgresql, ¿son las particiones o las bases de datos múltiples más eficientes?
- 17. En inglés simple, ¿cuáles son las vistas genéricas de Django?
- 18. ¿Qué son las claves externas de MySQL?
- 19. MySQL: Vistas vs Procedimientos almacenados
- 20. ¿Cuáles son las diferencias entre INSERT y UPDATE en MySQL?
- 21. ¿Cuáles son las formas eficientes de depurar un programa C/C++ optimizado?
- 22. python: ¿cuáles son las técnicas eficientes para tratar datos profundamente anidados de manera flexible?
- 23. Índices MySQL: ¿cuáles son las mejores prácticas?
- 24. Tablas dinámicas y SQL dinámicas de T-SQL
- 25. ¿Por qué mis futuros scala no son más eficientes?
- 26. ¿Las tablas de nombres september_2010 son aceptables y eficientes para grandes conjuntos de datos dependientes del tiempo?
- 27. memoria eficientes en Java
- 28. MySQL seleccionar valores de las filas dinámicas como nombres de columna, otra columna como valor
- 29. ¿Cómo borrar todas las vistas de la base de datos mysql usando mysql query/command?
- 30. ¿Optimiza y hace que las operaciones de formulario/crud sean más eficientes en las aplicaciones web?
Ver http://stackoverflow.com/q/7922675/632951 – Pacerier