Saltar al contenido principal
Documentos
FuncionesExpresionesKeywordsDeclaracionesCláusulas

Palabra clave MySQL EXPLAIN

La palabra clave `EXPLAIN` de MySQL se utiliza para obtener información sobre cómo se ejecuta una sentencia `SELECT`, `INSERT`, `UPDATE` o `DELETE`. Proporciona información sobre el plan de ejecución de la consulta, ayudando a los desarrolladores a optimizar las consultas a la base de datos.

Utilización

La palabra clave `EXPLAIN` se utiliza principalmente para diagnosticar y optimizar las consultas SQL mostrando detalles como los escaneos de tablas y el uso de índices. Se coloca antes de una consulta para revelar la estrategia de ejecución que utilizará MySQL.

EXPLAIN SELECT column1, column2, ...
FROM table_name
[WHERE condition];

En esta sintaxis, `EXPLAIN` precede a una consulta SQL para mostrar detalles sobre cómo planea MySQL ejecutarla. Para consultas que no sean `SELECT`, se recomienda `EXPLAIN FORMAT=JSON` para proporcionar información detallada.

Ejemplos

1. EXPLAIN básico en una consulta SELECT

EXPLAIN SELECT * FROM orders;

Este ejemplo proporciona detalles de ejecución, como el tipo de unión o el uso de índices, para recuperar todas las columnas de la tabla `orders`.

2. EXPLAIN con cláusula WHERE

EXPLAIN SELECT first_name FROM employees WHERE department_id = 5;

Aquí, `EXPLAIN` ayuda a identificar cómo influye la cláusula `WHERE` en el rendimiento de la consulta, como la utilización del índice para filtrar.

3. EXPLAIN con JOIN

EXPLAIN SELECT o.order_id, c.customer_name
FROM orders o
JOIN customers c ON o.customer_id = c.customer_id
WHERE c.city = 'New York';

Este ejemplo analiza una operación `JOIN`, proporcionando información sobre cómo se enlazan y filtran las tablas mediante la condición `WHERE`.

4. EXPLAIN con INSERTAR, ACTUALIZAR o ELIMINAR

Para las sentencias que no sean `SELECT`, utiliza `EXPLAIN FORMAT=JSON` para obtener información detallada:

EXPLAIN FORMAT=JSON INSERT INTO archive SELECT * FROM orders WHERE order_date < '2023-01-01';
EXPLAIN FORMAT=JSON UPDATE employees SET salary = salary * 1.1 WHERE department_id = 5;
EXPLAIN FORMAT=JSON DELETE FROM orders WHERE status = 'canceled';

Columnas de salida comunes de EXPLAIN

  • id: El identificador del SELECT dentro de una consulta.
  • select_type: El tipo de SELECT, como SIMPLE o PRIMARIO.
  • mesa: El nombre de la tabla a la que se refiere la fila de salida.
  • tipo: El tipo de unión.
  • possible_keys: Los posibles índices que MySQL puede elegir.
  • llave: El índice real que MySQL decidió utilizar.
  • key_len: La longitud de la clave utilizada.
  • ref: Las columnas o constantes comparadas con el índice.
  • filas: La estimación de filas examinadas.
  • Extra: Información adicional.

Consejos y buenas prácticas

  • Comprueba regularmente las consultas complejas. Utiliza `EXPLAIN` para analizar y optimizar consultas complejas para mejorar su rendimiento.
  • Combínalo con `ANALYZE`. Utiliza `ANALYZE TABLE` para actualizar las estadísticas de los índices y obtener resultados más precisos de `EXPLAIN`.
  • Comprende las columnas de salida. Familiarízate con las columnas de salida `EXPLAIN` para interpretar eficazmente la información sobre el rendimiento.
  • Optimiza en función de los resultados. Ajusta los índices, reescribe las consultas o rediseña los esquemas utilizando los conocimientos de `EXPLAIN` para mejorar la eficacia.
  • Utiliza `EXPLAIN EXTENDED` o `EXPLAIN FORMAT=JSON` para realizar un análisis más detallado y adaptar las optimizaciones a casos de uso específicos.

Perfeccionamiento de SQL para principiantes

Adquiere los conocimientos de SQL para interactuar con tus datos y consultarlos.
Empieza a aprender gratis