Bases de Datos > MySQL
Problema En Clausula Where
Altareum:
--- Código: Text ---No termino de entenderlo porque no estoy accediendo a través del índice think.gif .-
Entonces no te preocupes...
Intento explicarlo igualmente, de forma ràpida. En SQL cuando realizas conversiones en campos perteneciéntes al índice ( como una suma ), ya sea una función, una operación, etc... no utilizará el índice para realizar la búsqueda debido a que tiene que realizar la comparación campo por campo.
Por ejemplo (siendo que el campo fecha, sea parte del índice):
SELECT fecha WHERE DATE_ADD(fecha,INTERVAL 1 DAY) = CURDATE()
No utilizará el índice, para buscar los campos correspondientes, ya que para ello, tiene que convertir cada valor del campo, para saber si es igual a CURDATE().
Mientras que:
SELECT fecha WHERE fecha = DATE_SUB(CURDATE(),INTERVAL 1 DAY)
De esta forma si utilizará el índice, ya que buscará todas las fechas que sean iguales a hoy menos un día.
Por lo cual, el primer método es muchísimo más lento que el segundo...
Altareum.
Mollense:
...Académico :smartass:
Es lo que yo pensaba...
Muchas gracias Altareum :beer:
Navegación
[*] Página Anterior
Ir a la versión completa