Base de datos MySQL - índice (3) - sintaxis de índice (crear índice, ver índice, eliminar índice, demostración de caso), análisis de rendimiento de SQL (frecuencia de ejecución de SQL, registro de consultas lento)

Tabla de contenido

Sintaxis de índice

Crear índice

Ver índice

Eliminar índice

Presentación del caso

Análisis de rendimiento SQL

Frecuencia de ejecución de SQL

Registro de consultas lento


Sintaxis de índice

Crear índice

CREATE [ UNIQUE | FULLTEXT ] INDEX index_name ON table_name (index_col_name,... ) ;

Ver índice

SHOW INDEX FROM table_name ;

Eliminar índice

DROP INDEX index_name ON table_name ;


Presentación del caso

Primero cree una tabla tb_user y consulte los datos de prueba. Los datos insertados en la estructura de la tabla son los siguientes:

Una vez que los datos estén listos, a continuación, completaremos los siguientes requisitos:

  1. El campo de nombre es el campo de nombre. El valor de este campo puede repetirse. Cree un índice para este campo.
  2. El valor del campo del número de teléfono no está vacío y es único. Cree un índice único para este campo.
  3. Crear índices conjuntos por profesión, edad y estatus .
  4. Establezca índices apropiados para los correos electrónicos para mejorar la eficiencia de las consultas.
  5. Vea todos los datos del índice en la tabla tb_user .

 1. Simplemente cree el índice directamente.

CREATE INDEX idx_user_name ON tb_user(name);

2. Cree un índice único. (Agregue la palabra clave única delante del índice)

CREATE UNIQUE INDEX idx_user)phone ON tb_user(phone);

3. Cree un índice conjunto. En el índice conjunto, el orden de cada campo tiene un impacto (solo para entenderlo ahora)

CREATE INDEX idx_user_pro_age_sta ON tb_user(profession,age,status);

4. El campo de correo electrónico aquí es adecuado para el índice de una sola columna.

CREATE INDEX idx_email ON tb_user(email); 

5. Vea todos los datos del índice en la tabla tb_user.

show index from tb_user;

Análisis de rendimiento de SQL (Parte 1)

Frecuencia de ejecución de SQL

Una vez que el cliente MySQL se haya conectado correctamente, se puede proporcionar información sobre el estado del servidor mediante el comando show [session|global] status
. A través de los siguientes comandos, puede verificar la frecuencia de acceso de INSERTAR, ACTUALIZAR, ELIMINAR y SELECCIONAR ( agregar, modificar, eliminar, verificar) de la base de datos actual .

-- session 是查看当前会话 ;
-- global 是查询全局数据 ;
SHOW GLOBAL STATUS LIKE 'Com_______';
-- 七个下划线

Com_insert: número de inserciones
Com_select: número de consultas
Com_update: número de actualizaciones

A través de las instrucciones anteriores, podemos verificar si la base de datos actual se basa principalmente en consultas o en adiciones, eliminaciones y modificaciones, proporcionando así una referencia para la optimización de la base de datos.

Si se trata principalmente de adiciones, eliminaciones y modificaciones, podemos considerar no optimizar el índice.

Si se trata principalmente de consultas, entonces debe considerar optimizar el índice de la base de datos.

 

Entonces, si se trata principalmente de consultas, ¿cómo deberíamos posicionar y optimizar esas declaraciones de consulta? A veces podemos recurrir a registros de consultas lentos.

Registro de consultas lento

(en sistema Linux)

El registro de consultas lentas registra los registros de todas las declaraciones SQL cuyo tiempo de ejecución excede el parámetro especificado ( long_query_time , unidad: segundos, predeterminado 10 segundos) . El registro de consultas lentas de MySQL no está habilitado de forma predeterminada, podemos verificar la variable del sistema slow_query_log.

Si desea habilitar registros de consultas lentas, debe configurar la siguiente información en el archivo de configuración de MySQL (/etc/my.cnf):

# 开启MySQL慢日志查询开关
slow_query_log=1
# 设置慢日志的时间为2秒,SQL语句执行时间超过2秒,就会视为慢查询,记录慢查询日志
long_query_time=2

Una vez completada la configuración, use el siguiente comando para reiniciar el servidor MySQL para realizar pruebas y verificar la información registrada en el archivo de registro lento
/var/lib/mysql/localhost-slow.log.

systemctl restart mysqld;
-- 在Linux系统中重启MySQL

En este momento, verifique el estado del interruptor nuevamente y el registro de consultas lentas se activará.


FIN


Aprenda de: Programador Dark Horse - Curso de base de datos MySQL

Supongo que te gusta

Origin blog.csdn.net/li13437542099/article/details/133045197
Recomendado
Clasificación