Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Subconsultas vs varias consultas?

Estas en el tema de Subconsultas vs varias consultas? en el foro de Mysql en Foros del Web. Hola quicera saber que es mejor hacer en una aplicacion php mysql hacer un consulta con varias subconsultas SELECT * FROM tabla WHERE columna = ...
  #1 (permalink)  
Antiguo 24/11/2010, 08:18
Avatar de RIVERMILLOS  
Fecha de Ingreso: marzo-2010
Mensajes: 1.336
Antigüedad: 14 años, 1 mes
Puntos: 15
Subconsultas vs varias consultas?

Hola quicera saber que es mejor hacer en una aplicacion php mysql hacer un consulta con varias subconsultas

SELECT * FROM tabla WHERE columna = (SELECT col FROM tabla WHERE col=1)

o es mejor hacer SELECT col FROM tabla WHERE col=1 y con el resultado de esto

hacer SELECT * FROM tabla WHERE columna?


saludos
  #2 (permalink)  
Antiguo 24/11/2010, 14:03
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 19 años, 8 meses
Puntos: 56
Respuesta: Subconsultas vs varias consultas?

Hola Rivermillos.

Eso podrías tratar de comprobarlo con tu cliente Mysql. Generalmente los clientes te informan cuánto demora una consulta en ejecutarse.

Por eso, escribe allí una consulta y ejecútala: anota cuánto tiempo tardó (generalmente son milisegundos), y luego has lo mismo con la otra. De ahí compara: debieras elegir la que demora menos. Pero a veces ocurre que la demora en la carga es relativa y está sujeta a otros parámetros del servidor (cuánta gente más está conectada, cuántas peticiones está recibiendo al mismo tiempo, por ej.).

En Mysql y otros lenguajes existe una instrucción llamada EXPLAIN. Si la usas puedes también conocer en detalle el esfuerzo que hace tu servidor para ejecutar la consulta. Se usa algo así:

Código:
EXPLAIN SELECT * FROM tabla
Te devuelve una tabla con parámetros. Puedes revisar su significado en la documentación de Mysql: http://dev.mysql.com/doc/refman/5.0/es/explain.html

De cualquier forma, y volviendo a tu consulta original, el subquery no es malo usarlo mientras la tabla a la que consultes tenga pocos registros. Si tuviese 1 millón, no es para nada conveniente. Aunque igual puedes lograr maravillas si indexas bien la tabla, de modo que se agiliza la consulta en mucho.

Saludos!!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:53.