Blog de David Rodriguez

Internet, tecnologia, programacion, SEO

Optimizacion de consultas sql con lower y trim

febrero 19th, 2010 by David Rodriguez

Muchas veces utilizamos para buscar algún campo String en una base de datos MySql, confirmamos con lower y trim para poner todo el texto en minúsculas y eliminar espacios en blanco, tanto el principio como al final del registro.

SELECT * FROM tabla WHERE lower(trim(email))=lower(trim(‘emaildeprueba@prueba.com’));

Eliminar esas funciones sql en MySql reduce la consulta en un 70% con un número alto de registros.

La mejor solución para esto es:

  1. Introducir los datos con esas opciones ya realizadas. Facilmente en php o cualquier otro lenguaje de programación podemos realizar estas funciones, con un uso de máquina mucho menor.
    $email = strtolower(trim($email));
  2. actualizar todos los datos de la tabla para no tener estos problemas en un futuro
    UPDATE tabla SET email=lower(trim(email));
  3. Ya se puede eliminar estas funciones de la consulta(query).
    SELECT * FROM tabla WHERE email=’emaildeprueba@prueba.com’;

Es importante reducir el uso de CPU por parte de las consultas a base de datos, que es lo que nos puede retardar las respuestas al cliente. Como siempre hemos comentado, es muy importante optimizar las sentencias SQL para optimizar los tiempos de respuesta de la pagina web. Hay muchas cosas además de Indexar las tablas para optimizar una base de datos mysql.

Posts relacionados

This entry was posted on Viernes, febrero 19th, 2010 at 12:01 pm and is filed under Base de datos, Internet, Programacion. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply