Cómo usar la declaración de explicación mysql

Cómo usar la declaración de explicación mysql
El usuario de la base de datos debe ejecutar diferentes tipos de consultas para diferentes fines. Pero a veces muchas consultas no devuelven los resultados esperados y el administrador de la base de datos necesita averiguar la razón. MySQL contiene una herramienta útil llamada EXPLICAR para diagnosticar el error para el cual la declaración de consulta no funciona correctamente. Se utiliza al comienzo de cualquier declaración de consulta para proporcionar información sobre la ejecución de la consulta. Explicar la palabra clave se puede usar con select, insertar, actualizar, eliminar y reemplazar declaraciones. Cómo explicar la palabra clave funciona con declaraciones seleccionadas para diagnosticar errores de la consulta u optimizar la consulta se muestra en este artículo en este artículo.

Explique la salida de palabras clave para la consulta de selección:

Cuando la palabra clave Explicar se ejecuta con la instrucción SELECT, la salida de explicación devolverá las siguientes columnas.

Columna Descripción
identificación Indica el identificador de la consulta. Representa el número secuencial de consultas selectas.
seleccione tipo Indica el tipo de consulta de selección. El tipo puede ser simple, primario, subconsulta, unión, etc.
mesa Indica el nombre de la tabla utilizado en la consulta.
particiones Indica las particiones de la tabla dividida examinada.
tipo Indica el tipo de unión o el tipo de acceso de las tablas.
posible_keys Indica las teclas que MySQL puede usar para encontrar filas de la tabla.
llave Indica el índice utilizado por MySQL.
key_len Indica la longitud del índice que usará el optimizador de consulta.
árbitro Indica las columnas o constantes que se comparan con el índice nombrado en la columna clave
hilera Indica las listas de registros que fueron examinados.
filtrado Indica el porcentaje estimado de filas de tabla que se filtrarán por la condición.
extra Indica la información adicional sobre el plan de ejecución de consultas.

Supongamos que tiene dos tablas relacionadas con nombre clientes y pedidos En la base de datos nombrada compañía. Las declaraciones SQL necesarias para crear la base de datos y las tablas con datos se dan a continuación.

Crear compañía de bases de datos;
Usar empresa;
Crear clientes de la mesa (
ID int (5) Clave primaria Auto_Increment,
Nombre Varchar (50) No nulo,
mobile_no varchar (50) no nulo,
correo electrónico varchar (50) no nulo) motor = innodb;
Crear pedidos de tabla (
ID VARCHAR (20) Clave principal,
Fecha de orden de orden,
customer_id int (5) no nulo,
entrega_address varchar (50) no nulo,
cantidad int (11),
REFERENCIAS DE CLAVE EXTRANJERO (CLANDER_ID) CLIENTES (ID))
Motor = innodb;
Insertar en los valores de los clientes
(Null, 'Johnathan', '18477366643', '[email protected] '),
(NULL, 'Musfiqur Rahman', '17839394985', '[email protected] '),
(Null, 'Jimmy', '14993774655', '[email protected] ');
Insertar en el valor de pedidos
('1937747', '2020-01-02', 1, 'nuevo trabajo', 1000),
('8633664', '2020-02-12', 3, 'Texas', 1500),
('4562777', '2020-02-05', 1, 'California', 800),
('3434959', '2020-03-01', 2, 'nuevo trabajo', 900),
('7887775', '2020-03-17', 3, 'Texas', 400);

Ejecute la siguiente declaración para ver la lista de registros actual de clientes mesa.

Seleccionar * de los clientes;

Ejecute la siguiente declaración para ver la lista de registros actual de pedidos mesa.

Seleccionar * de los pedidos;

Uso de la declaración de explicación simple:

La siguiente instrucción SQL devolverá la palabra clave de la declaración Explicar de una consulta selecta simple que recupera todos los registros de la tabla de los clientes.

Explique SELECT * de los clientes \ g;

La siguiente salida aparecerá después de ejecutar la declaración. Es una sola consulta de tabla y no hay cláusulas especiales como unión, unión, etc. se usan en la consulta. Para esto, el valor de seleccione tipo es SIMPLE. La tabla de los clientes contiene solo tres registros, por eso el valor de hilera es 3. El valor de filtrado es 100% porque todos los registros de la tabla están recuperados.

Uso de explicación en consulta seleccionada con unión:

La siguiente declaración de explicación se aplica en una consulta selecta de dos tablas con la cláusula de unión y una condición donde.

Explicar a los clientes seleccionados.Nombre, pedidos.order_date, pedidos.cantidad
De los clientes
Unirse a los pedidos en (clientes.ID = órdenes.Identificación del cliente)
Donde los clientes.nombre = 'Johnathan' \ G

La siguiente salida aparecerá después de ejecutar la declaración. Aquí, seleccione tipo es simple para ambas tablas. Dos tablas están relacionadas con una relación de uno a muchos. La clave principal de clientes La tabla se usa como una clave extranjera de pedidos mesa. Para esto, el valor de posible_keys para la segunda fila es Identificación del cliente. El valor filtrado es 33% para clientes mesa porque 'Johnathan' es la primera entrada de esta tabla y no es necesario buscar más. El valor filtrado de pedidos La mesa es 100% Debido a todos los valores de pedidos Tabla requerida para verificar para recuperar los datos.

Hay una advertencia en la salida de la declaración anterior. La siguiente declaración se utiliza para ver la consulta que se ejecuta después de hacer cualquier cambio por el optimizador de la consulta o verificar el motivo del error si se produce algún error después de ejecutar la consulta.

Mostrar advertencias \ g

No hay error en la consulta. La salida muestra la consulta modificada que se ejecuta.

Uso de explicar para averiguar el error de la consulta seleccionada:

La consulta de selección que se usa en la siguiente declaración de explicación contiene un error. El formato de fecha compatible con MySQL es 'Yyyy-mm-dd'. Pero en la condición de esta consulta, el valor de la fecha se da como 'Dd-mm-yyyy' eso está mal.

Explicar a los clientes seleccionados.Nombre, pedidos.order_date, pedidos.cantidad
De los clientes
Unirse a los pedidos en (clientes.ID = órdenes.Identificación del cliente)
Donde las órdenes.orden_date = '10 -10-2020 '\ g

La siguiente salida aparecerá después de ejecutar la declaración. Mostrará dos advertencias. Uno es el valor predeterminado que se explica en el ejemplo anterior y otro es para el error de fecha mencionado anteriormente.

Ejecute la declaración para ver el error.

Mostrar advertencias \ g

La salida muestra el error claramente con un mensaje de error y nombre de columna.

Uso de explicación en consulta seleccionada con Union All Operator:

Union All Operator se usa en la consulta de selección para recuperar todos los valores de columna coincidente con duplicados de las tablas relacionadas. La siguiente declaración mostrará la salida de explicación de la aplicación de unión a todos los operadores entre clientes y pedidos mesas.

Explique Seleccionar ID como ID
De los clientes
Unión todos
Seleccione Customer_ID como ID
De los pedidos \ g

La siguiente salida aparecerá después de ejecutar la declaración. Aquí, el valor de seleccione tipo es UNIÓN para la segunda fila de la salida y el valor de Extra es el índice.

Conclusión:

Los usos muy simples de la declaración de explicación se muestran en este artículo. Pero esta declaración se puede usar para resolver varios problemas complicados de la base de datos y optimizar la base de datos para un mejor rendimiento.