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)
