Cambié una línea de código, la eficiencia de las consultas de MySQL aumentó en un 80 %, el jefe me recompensó con 500 000

 ⭐Prefacio

        La optimización de la base de datos MySQL es una habilidad necesaria para los administradores de bases de datos.Se utilizan diferentes métodos de optimización para lograr el propósito de mejorar el rendimiento de la base de datos MySQL.

        Base de datos MySQL Cuando la cantidad de usuarios y datos es muy pequeña, es difícil para nosotros juzgar el rendimiento de la base de datos MySQL. Solo cuando aumenta el número de usuarios y la cantidad de datos, cómo puede reflejarse el rendimiento de MySQL. La consulta es la operación más frecuente de la base de datos, y mejorar la velocidad de consulta puede mejorar efectivamente el rendimiento de la base de datos MySQL.


Optimizar consultas

⭐Sentencia SHOW STATUS para consultar el rendimiento de la base de datos MySQL⭐

⭐Analizar declaraciones de consulta⭐

⭐El impacto de la indexación en la velocidad de consulta⭐

⭐LIKE consultas de índice optimizadas⭐

⭐Uso de índices de varias columnas⭐

⭐ Usar palabra clave o⭐


⭐Sentencia SHOW STATUS para consultar el rendimiento de la base de datos MySQL⭐

Podemos consultar el rendimiento de la base de datos MySQL usando la instrucción SHOW STATUS .

Formato de sintaxis:

SHOW STATUS LIKE 'VALUE'

Los parámetros de VALUE son los siguientes

  1. Conexión : el número de veces para conectarse al servidor MySQL.
  2. Uptime : El tiempo en línea del servidor MySQL.
  3. Slow_queries : el número de consultas lentas.
  4. Com_select : el número de operaciones de consulta.
  5. Com_insert : el número de operaciones de inserción.
  6. Com_delete : el número de operaciones de eliminación.

! A través de estos parámetros podemos analizar el rendimiento de la base de datos MySQL. Luego, de acuerdo con los resultados del análisis, se realiza la optimización de rendimiento correspondiente.



⭐Analizar declaraciones de consulta⭐

Las sentencias de consulta se pueden analizar mediante la sentencia EXPLAIN y la sentencia DESCRIBE .

Formato de sintaxis:

#EXPLAIN 语法格式
EXPLAIN  SELECT 语句;

#DESCRIBE 语法格式
DESCRIBE SELECT 语句;

 A continuación, presentaremos EXPLICAR y DESCRIBIR respectivamente.

Use la declaración EXPLAIN para analizar las declaraciones de consulta

 El significado de cada campo:

id : Indica la posición de la selección en toda la consulta.

tabla : contiene el nombre de la tabla que se va a consultar.

type : el tipo de conexión, esta columna almacena muchos valores, que van desde const hasta All.

possible_keys : Indica los índices que se pueden usar en MySQL para mejorar la velocidad de búsqueda.

clave : Indica la clave real utilizada.

filas : Indica el número de filas que necesita MySQL para devolver el resultado de la consulta a verificar en la tabla correspondiente.Para obtener el número total de filas, MySQL debe escanear toda la consulta y multiplicar por el valor de la fila de cada tabla.

Extra : contiene información adicional para diseñar cómo MySQL maneja la consulta.


Analice declaraciones de consulta usando la declaración DESCRIBE

El uso de la declaración  DESCRIBE es el mismo que el de la sintaxis EXPLAIN y los resultados del análisis de los dos son generalmente los mismos.


⭐El impacto de la indexación en la velocidad de consulta⭐

Usamos índices en el proceso de consulta, lo que puede mejorar la eficiencia de la consulta de la base de datos y reducir el número de consultas. A continuación, usamos un ejemplo para comparar la diferencia en la velocidad de consulta entre usar un índice y no usar un índice.


Analizamos con y sin índices consultando la tabla de estudiantes.

 


Consultas que no usan índices

explain select * from student where stuname = 'zhangsan';

 Análisis: sin usar índices, encontramos que se consultaron los tres datos de la tabla original. En este momento, algunas personas dirán, ¿cuál es el impacto de solo tres datos? Por supuesto, cuando la cantidad de datos es pequeña, la eficiencia de la consulta no hará mucha diferencia. Si hay una gran cantidad de datos en la base de datos, como decenas de millones de datos, las decenas de millones de datos se recuperarán cuando consultamos, y los usuarios consumirán mucho tiempo para recorrer decenas de millones de datos para consultar un recurso de datos.


Consultas usando índices

Primero agregamos un índice al campo stuname

CREATE INDEX index_stuname ON student(stuname);

 Después de agregar el índice, estamos consultando

explain select * from student where stuname = 'zhangsan';

 Análisis: Como se puede ver en los resultados anteriores, debido al índice creado, el número de filas a las que se accede se reduce de 3 a 1. Por lo tanto, en la operación de consulta, usar el índice no solo optimizará la eficiencia de la consulta, sino que también reducirá la sobrecarga del servidor.


⭐LIKE consultas de índice optimizadas⭐

Cuando el primer carácter es "%" , no se usará el índice. Si la posición del "%" en la cadena coincidente no es la primera posición, el índice se usará normalmente .

explain select * from student where stuname like 'zh%';

 


⭐Uso de índices de varias columnas⭐

Un índice de varias columnas crea un índice en varios campos de la tabla, y el índice se usará normalmente solo cuando uno de estos campos se use en la condición de consulta.

Crear un índice de varias columnas

CREATE INDEX index_student ON student(stuname,stuage);

Nota: Si aplicamos el campo stuage al consultar, el índice no se puede usar normalmente, y el índice tendrá efecto solo cuando se deba usar el primer campo stuname. ¡Esto debe ser recordado!



⭐ Usar palabra clave o⭐

       ! En MySQL, cuando la declaración de consulta solo contiene la palabra clave o, los dos campos a consultar deben estar ambos indexados . Si una de las condiciones buscadas no es un índice, el índice no se aplicará a la consulta. No tendrá efecto . , y la eficiencia de la consulta no mejorará.


Si este artículo es útil para mis amigos, espero darle un me gusta y apoyo ~ Muchas gracias ~


Supongo que te gusta

Origin blog.csdn.net/weixin_42306958/article/details/123079074
Recomendado
Clasificación