Ver Mensaje Individual
  #6 (permalink)  
Antiguo 11/05/2015, 10:36
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cálculos con MySQL muy lento

El problema de los LIKE, en principio, consiste en que estás usando los comodines al principio y al final de la cadena al mismo tiempo. Eso le indica a la base que devuelva todo lo que comience con cualquier cosa, y termine con cualquier cosa, en tanto contenga la cadena bsucada...
Ahora bien, la base no puede distingir en ese caso nada, porque se pide todo lo qu eexista, y que contenga esa cadena. Eso simplemente significa que debe leer uno po uno todos los registros y comaprar el contenido.
¿Te das cuenta el problema: Tiene que leer TODO...
Ese tipo de uso del LIKE no es optimizable de ninguna forma. Incluso si crearas índices, MySQL los descartaría, porque cualquier indice que pueda tener que leerse en un 50% le llevaría el mismo tiempo o mas que leer la tabla. Por eso simplemente lo descarta.
A nivel práctico, lo mejor que puedes hacer es comparar obligar al usuario a ingresar palabras completas, y usar indices FULLTEXT.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)