Índice de fuerza mysql

Índice de fuerza mysql
El valor particular en un campo de tabla se puede buscar rápidamente utilizando un índice. Si no se define ningún índice en la tabla, la búsqueda comenzará desde el primer registro y dejará de buscar dónde existe el valor de búsqueda. Si el valor de búsqueda no existe en la tabla, la búsqueda se detendrá después de iterar el último registro. Lleva mucho tiempo para la mesa grande. MySQL usa índices para los campos de la tabla para hacer la búsqueda más rápido. El optimizador de consultas del servidor MySQL es un componente útil para optimizar la ejecución de la consulta utilizando estadísticas disponibles. Si las estadísticas muestran que el valor de búsqueda existe en la mayoría de los registros de la tabla, entonces no hay ningún beneficio al usar el índice. Si las estadísticas muestran que el valor de búsqueda existe en algunos registros de tabla, entonces es beneficioso usar el índice para hacer la búsqueda más rápido. MySQL puede forzar el índice cuando el optimizador de consulta ignora el índice.

Sintaxis:

La sintaxis del índice de fuerza se da a continuación.

SELECCIONAR *
De table_name
Índice de fuerza (index_list)
Donde condición;

Aquí, el index_list contendrá uno o más nombres de columnas de table_name utilizados para buscar.

Requisitos previos:

Debe crear una tabla de base de datos con datos en una base de datos MySQL para verificar la función de índice de fuerza de MySQL. Abra el terminal y conéctese con el servidor MySQL ejecutando el siguiente comando.

$ sudo mysql -u root

Ejecute el siguiente comando para crear una base de datos llamada test_db.

Crear base de datos test_db;

Ejecute el siguiente comando para seleccionar la base de datos.

Usar test_db;

Ejecute la siguiente consulta para crear una tabla llamada empleados con cinco campos.

Crear tabla 'empleados' (
'id' int (11) auto_increment,
'Nombre' Varchar (50) No NULL,
'Post' Varchar (25) no es nulo,
Fecha de 'unión_date' no nula,
'Salario' no es nulo,
Clave primaria (id));

Ejecute la siguiente consulta de inserción para agregar seis valores a la tabla de empleados.

Insertar en 'empleados' ('id', 'nombre', 'publicar', 'unirse_date', 'salario') valores
(Null, 'Nur Jahan', 'Subgerente', '2021-01-05', 78000),
(NULL, 'ASIF IQBAL', 'Gerente', '2019-03-20', 56000),
(NULL, 'JAFAR IQBAL', 'Subgerente', '2021-12-31', '60000'),
(NULL, 'SEFALI AKTER', 'Oficial de marketing', '2022-01-01', '65000'),
(NULL, 'Apurbo Chowdhury', 'CEO', '2013-05-15', '350000'),
(NULL, 'Nirob Hasan', 'Gerente', '2019-12-18', '58000');

Ejemplo-1: verifique el índice predeterminado

Cuando se crea una tabla, la clave principal se definirá como un índice de forma predeterminada. Ejecute el siguiente comando para verificar la lista de índices actual de los empleados.

Mostrar índices de los empleados;

Producción:

La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra que el Btree Se ha asignado el índice para el identificación campo de la empleados mesa.

Si no se asigna ningún índice para el salario campo de la empleados tabla Después de crear la tabla, luego todos los registros de la tabla serán escaneados por el optimizador de consultas para la siguiente consulta. El Explicar La palabra clave se usa aquí para obtener la información de ejecución de la consulta de selección.

Explique SELECT * de los empleados
Donde salario> = 60000;

Producción:

La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra que se requirieron todas las filas para ejecutar la consulta y filtrar datos de la empleados mesa.

Ejemplo-2: verifique la ejecución de la consulta después de crear el índice

Tienes que definir el índice para el salario campo de la empleados tabla para optimizar la consulta correctamente. Ejecute la siguiente consulta para crear el índice para el salario campo de la empleado mesa.

Crear índice index_salary en empleados (salario);

Ejecute el siguiente comando nuevamente para verificar el estado del índice actual de la tabla de empleados.

Mostrar índices de los empleados;

Producción:

La siguiente salida aparecerá después de ejecutar el comando anterior. La salida muestra que ahora hay dos índices BTree en la tabla de empleados.

Ejecute la consulta de selección anterior nuevamente para verificar la información de ejecución de la consulta. La salida de la declaración de explicación puede no ser precisa para la tabla que contiene pocos registros o puede variar para diferentes ejecuciones. Es mejor agregar registros grandes a la tabla para obtener el resultado aproximadamente correcto.

Explique SELECT * de los empleados
Donde salario> = 60000;

Producción:

La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra que se requirieron 4 filas para ejecutar la consulta y filtrar los datos del empleados mesa. Según la salida, el tiempo de ejecución de la consulta es 0.04 segundos que accedieron a 4 filas para obtener la salida.

Ejemplo-3: verifique la ejecución de la consulta después de usar el índice de fuerza

El optimizador de consulta utilizará el índice definido o no que depende de la condición de la consulta, el número de registros de la consulta y el número de filas coincidentes de la tabla en función de la condición.

Ejecute la siguiente consulta para obligar al optimizador de consulta a usar el índice_salary índice en el momento de la ejecución de la consulta. El Índice de fuerza La declaración se usa antes de la cláusula WHERE de la consulta selecta para obligar al optimizador de consulta a usar el índice_salary índice.

Explique SELECT * de los empleados
Índice de fuerza (index_salary)
Donde salario> = 60000;

Producción:

La siguiente salida aparecerá después de ejecutar la consulta anterior. La salida muestra que se requirieron 4 filas para ejecutar la consulta y filtrar los datos del empleados mesa. Según la salida, el tiempo de ejecución de la consulta es 0.00 segundos que accedieron a 4 filas para obtener la salida. Esta salida también puede variar para diferentes ejecuciones.

Conclusión:

La función de índice de fuerza de MySQL es útil al buscar el valor particular en una tabla que contiene una gran cantidad de registros. La forma de crear un índice para una tabla y forzar el optimizador de consulta para usar ese índice con fuerza en el momento de la ejecución de la consulta mediante el uso de la declaración de índice de fuerza en este tutorial.