MySQL - Query muy lento

 
Vista:

Query muy lento

Publicado por ayudita (1 intervención) el 13/02/2009 16:42:00
El siguiente query tarda mucho en mostrarme los resultados (26 segundos):

SELECT COUNT(t1.id_usuario)
FROM t1
INNER JOIN t2 ON t2.id=t1.id_usuario
INNER JOIN t3 ON t3.id_usuario=t1.id_usuario
WHERE
(t1.provincia='VALOR CHAR')
AND (t3.id_organizacion='VALOR INT')
AND (t2.bloqueado='F' AND t2.eliminado='F' AND t2.disponible='T')

En t1 hay 37.000 registros.
En t2 hay 32.000 registros.
En t3 hay 130.000 registros.

A ver si alguien me puede hechar una mano.

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Query muy lento

Publicado por ery (69 intervenciones) el 15/02/2009 01:11:10
yo la escribira asi

SELECT COUNT(t1.id_usuario) FROM t1, t2, t3
where t1.id_usuario = t2.id
and t1.id_usuario = t3.id_usuario
and (t1.provincia='VALOR CHAR')
and (t3.id_organizacion='VALOR INT')
and (t2.bloqueado='F' AND t2.eliminado='F' AND t2.disponible='T')

ahora lo primero que haria seria hacer un
explain SELECT COUNT(t1.id_usuario) FROM t1, t2, t3
where t1.id_usuario = t2.id
and t1.id_usuario = t3.id_usuario
and (t1.provincia='VALOR CHAR')
and (t3.id_organizacion='VALOR INT')
and (t2.bloqueado='F' AND t2.eliminado='F' AND t2.disponible='T')

para ver los indicies utilizados
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar