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

Cual de los dos casos es mejor? Subconsulta

Estas en el tema de Cual de los dos casos es mejor? Subconsulta en el foro de Mysql en Foros del Web. Hola, tengo esta duda mental que no se cual de las dos consultas es mejor: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT COUNT ( n ...
  #1 (permalink)  
Antiguo 14/02/2012, 07:22
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 15 años, 5 meses
Puntos: 5
Cual de los dos casos es mejor? Subconsulta

Hola, tengo esta duda mental que no se cual de las dos consultas es mejor:

Código SQL:
Ver original
  1. SELECT COUNT(n.ID)
  2. FROM notificaciones n
  3. WHERE (SELECT COUNT(ID_SECCION) FROM ultimo_acceso WHERE ID_SECCION = 14 AND ID_ELEMENTO = n.ID AND ID_USUARIO = $idUsuario LIMIT 1) = 0

o esta:

Código SQL:
Ver original
  1. SELECT COUNT(n.ID)
  2. FROM notificaciones n
  3. WHERE n.ID NOT IN (SELECT ID_ELEMENTO FROM ultimo_acceso WHERE ID_SECCION = 14 AND ID_ELEMENTO = n.ID AND ID_USUARIO = $idUsuario LIMIT 1)

Las consultas simplemente tratan de sacar el numero de notificaciones que no han sido vistas aun, por eso la tabla de ultimo_acceso (Si ahi no hay nada es que no la ha visto)

Saludos!
Me podrian decir y explicar por que una y no otra?
  #2 (permalink)  
Antiguo 15/02/2012, 02:01
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: Cual de los dos casos es mejor? Subconsulta

Utiliza select explain para ver cómo se comportan en tu DB y así podrás elegir una o la otra de acuerdo a rendimiento. Saludos
__________________
Fere libenter homines, id quod volunt, credunt.

Etiquetas: casos, select, subconsulta, tabla
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 06:32.