El día 23 de noviembre de 2009 18:49, Jose C. Masson
<[email protected]> escribió:
> Hola a todos,
>
> A ver si a alguien alguna vez le pasó esto con MySQL.
>
> Situación:
>
> La aplicación con la que estoy laburando (SugarCRM) en una parte de su 
> interfaz y para
> mostrar ciertos datos genera automagicamente una consulta, en la cual hace 
> uso de "LEFT
> JOIN" entre dos tablas (leads, y leads_cstm) de no más de 9000 registros cada 
> una.
> Esta consulta, por algún extraño motivo al MySQL le cuesta un huevo y la 
> mitad del otro
> (450 segundos).
>
> Si ejecuto esta misma consulta directamente sobre la consola de MySQL o desde 
> PHPMyadmin,
> tarda lo mismo... pero si la modifico levemente, y en cambio de usar LEFT 
> JOIN uso INNER
> JOIN, tarda menos de un segundo en ejecutarse.
>
> Vale aclarar que en este caso en particular es al pedo usar LEFT JOIN porque 
> la relación
> entre las tablas es 1 a 1... con lo cual no habría registros de "leads" que 
> no tengan su
> contraparte en "leads_cstm", así que podría usar INNER JOIN sin dramas... 
> pero para esto
> tendría que ponerme a meterle mano al core de la aplicación, y es algo que 
> preferiría evitar.
>
> Estuve buscando por la red y no logré encontrar el por qué de esta diferencia 
> entre LEFT
> JOIN e INNER JOIN.... alguien conoce si existe alguna forma de tunear MySQL 
> para que LEFT
> JOIN no tarde tanto o mi destino está escrito y tendré que meterle mano a la 
> aplicación
> para cambiar la forma en la cual hace la consulta??
>


Por favor pegá el EXPLAIN de la consulta, junto con la consulta.

Revisa indices y hace una optimizacion de las tablas. Verifica el
engine de las mismas.

http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html


-- 
Emanuel Calvo Franco
http://www.emanuelcalvofranco.com.ar
--
Para desuscribirte tenés que visitar la página
https://listas.linux.org.ar/mailman/listinfo/lugar-gral/
Usuarios Software Libre Argentina (USLA)

Responder a