Sé que podemos hacer correlated subqueries y unirnos. ¿Pero cuál es más rápido? ¿Hay una regla de oro o debo medir ambos?¿Cuál es más rápido: subconsultas correlacionadas o unión?
Respuesta
En primer lugar, una subconsulta correlacionada realmente es un tipo de unión. No hay una regla de oro acerca de cuál produce el mejor plan de ejecución. Si le interesa el rendimiento, debe probar los diferentes formularios para ver qué funciona mejor. O, al menos, mira los planes de exención para tomar esa decisión.
En general, tiendo a evitar las subconsultas correlacionadas por un par de razones. En primer lugar, casi siempre se pueden escribir sin la correlación. En segundo lugar, muchos motores de consulta los convierten en combinaciones de bucles anidados (aunque usan índices), y otras estrategias de combinación podrían ser mejores. En tales casos, las subconsultas correlacionadas dificultan la paralelización de la consulta. En tercer lugar, las subconsultas correlacionadas son generalmente en las cláusulas SELECT o WHERE. Me gusta que todas mis tablas estén en la cláusula FROM.
En MySQL, sin embargo, las subconsultas correlacionadas suelen ser la más manera eficiente de realizar una consulta. Esto es especialmente cierto cuando se utiliza una subconsulta en una cláusula IN
. Entonces, no hay una regla de oro.
- 1. MySql problema de alcance con subconsultas correlacionadas
- 2. numpy.max o max? ¿Cuál es más rápido?
- 3. ¿Cuál es más rápido COALESCE O ISNULL?
- 4. ¿Cuál es el más rápido en PHP- MySQL o MySQLi?
- 5. ¿Cuál es generalmente más rápido, un rendimiento o un apéndice?
- 6. SQL & PHP - ¿Cuál es más rápido mysql_num_rows() o 'select count()'?
- 7. ¿Cuál es el protocolo más rápido, ssh o git?
- 8. ¿Cuál es más rápido asp.net mvc json o json.net?
- 9. ¿Qué es más rápido, XPath o Regexp?
- 10. que es más rápido, equalsIgnoreCase o compareToIgnoreCase
- 11. ¿Quién es más rápido: PEG o GLR?
- 12. ¿Cuál es más rápido y por qué?
- 13. ¿Qué es más rápido, INSTR o LIKE?
- 14. ¿Qué es más rápido: JDBC o JNDI?
- 15. WCF: ¿cuál es el enlace más rápido?
- 16. ¿Qué es mejor? ¿Subconsultas o internas que unen diez tablas?
- 17. ¿Qué es más rápido EN O?
- 18. ¿doble o flotante, que es más rápido?
- 19. ¿qué es más rápido: recrear o borrar()?
- 20. ¿Qué es más rápido? Comparación o asignación?
- 21. escribe o imprime, ¿qué es más rápido?
- 22. ¿Qué es más rápido: Union o Concat?
- 23. que es más rápido? Declaración o PreparedStatement
- 24. ¿Cuál es el estilo de CSS más rápido/más eficiente
- 25. Double.TryParse o Convert.ToDouble - ¿Qué es más rápido y más seguro?
- 26. En MySQL, ¿es más rápido eliminar e insertar o es más rápido actualizar las filas existentes?
- 27. Izquierda JOIN más rápido o Inner Join más rápido?
- 28. Cuál es más rápido y más ligero - mysqli & PDO
- 29. cuando es Java más rápido que C++ (o cuando JIT es más rápido que precompilado)?
- 30. ¿Es Linq más rápido, más lento o lo mismo?
Debe medir según la consulta. Depende de tus datos, tamaño, esquema. En otras palabras, no hay una regla de oro. – Cfreak
@Cfreak: agréguelo como respuesta, porque es correcto. – RQDQ