Saltar al contenido

Cómo optimizar consultas SQL para un mayor rendimiento

Cuando una consulta SQL tiene un rendimiento bajo, es porque no está siendo optimizada de la manera correcta. Hay ciertos factores que hay que tomar en cuenta a la hora de optimizar una consulta, ya que de esta forma podremos mejorar el rendimiento y obtener resultados satisfactorios. En este artículo vamos a hablar sobre cómo optimizar consultas SQL para conseguir el mayor rendimiento posible.

Índice

    Como optimizar una consulta sql con Where?

    Por lo cual debemos tratar de hacer todas nuestras consultas que permitan una armonía entre las relaciones de estos datos un error muy común es hacer una consulta con una mala relación entre los datos y las tablas.

    Ejemplo optimizar una consulta sql

    select * from pedidos where fecha = '2017-01-01'

    En este caso la consulta usando where seria muy lenta si no se tiene un índice en la columna fecha ademas agregamos que esta consulta usa un asterisco(*) creando una carga adicional en el servidor. si quieres saber como convertir las fechas en sql al formato que utilizas aqui tu articulo.

    Aprende a optimizar una consulta sql campos Blob

    Los campos Blob son aquellos que almacenan datos binarios como imágenes, archivos de audio o video. Estos campos generalmente se encuentran en tablas separadas y no requieren índices ya que su búsqueda es más lenta en mi caso prefiero no almacenar estos datos en la base de datos y si es necesario usar un campo Blob , lo hago en una tabla aparte.

    El comando EXPLAIN para optimizar query sql

    El comando EXPLAIN es una herramienta que nos ayuda a analizar el plan de ejecución de una consulta SQL y así poder detectar si está optimizada o no.

    Este comando nos muestra el número de filas que se van a examinar en cada paso, así como el número de filas que se van a devolver. También nos muestra si la consulta va a usar algún índice o no.

    Para ejecutar el comando EXPLAIN, debemos añadirlo delante de nuestra consulta SQL.

    Ejemplo de optimizacion de consultas sql:

    EXPLAIN SELECT * FROM pedidos WHERE fecha = '2017-01-01'

    En este caso, vemos que la consulta va a examinar todas las filas de la tabla pedidos y que va a devolver todas aquellas que cumplan la condición WHERE. También vemos que no va a usar ningún índice, por lo que podemos concluir que esta consulta no está optimizada.

    Añadir un índice para la optimizacion de consultas sql

    Para optimizar esta consulta, podemos añadir un índice en la columna fecha:

    ALTER TABLE pedidos ADD INDEX (fecha)

    De esta forma, cuando volvamos a ejecutar la consulta EXPLAIN, veremos que ahora sí va a usar un índice.

    Otro ejemplo de una consulta sin optimización de consultas sql:

    EXPLAIN SELECT * FROM pedidos WHERE estatus = 'pendiente'

    En este caso, vemos que la consulta va a examinar todas las filas de la tabla pedidos y que va a devolver todas aquellas que cumplan la condición WHERE. También vemos que no va a usar ningún índice, por lo que podemos concluir que esta consulta tiene ninguna optimización de consultas sql.

    Para optimizar esta consulta, podemos añadir un índice en la columna estatus para esto debemos utilizar el comando alter para modificar la tabla y agregar este indice:

    ALTER TABLE pedidos ADD INDEX (estatus)

    De esta forma, cuando volvamos a ejecutar la consulta EXPLAIN, veremos que ahora sí va a usar un índice. El comando EXPLAIN esta presente en mysql , postgresql, sql server

    Te dejo estos links que puede servirte para optimizar consultas sql :

    La guía definitiva para formatear tu código SQL: estilos y formatos

    Técnicas avanzadas consultas DML , con ejemplos prácticos

    En conclusión, optimizar consultas SQL puede ser un trabajo un poco dificultoso, pero si se siguen estos pasos y se utiliza el comando EXPLAIN, podremos detectar fácilmente si nuestra consulta está optimizada o no.

    Hasta la próxima!!

    Bye :D!!