"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué mis consultas \"SELECT COUNT(*)\" en la tabla change_event son tan lentas?

¿Por qué mis consultas \"SELECT COUNT(*)\" en la tabla change_event son tan lentas?

Publicado el 2024-11-18
Navegar:780

Why are my \

Abordar consultas lentas "SELECT COUNT(*)" en MySQL

Su consulta en la tabla change_event, contando filas que exceden un change_event_id específico , está experimentando retrasos importantes. ¿Pero por qué? Profundicemos en las posibles causas.

Revelando el comportamiento de InnoDB

El motor InnoDB de MySQL utiliza claves primarias agrupadas, lo que significa que la clave primaria se almacena junto con los datos de fila en las páginas de datos, en lugar de que páginas de índice separadas. Como resultado, los escaneos de rango, como el suyo, requieren escanear todas las filas potencialmente anchas en las páginas de datos. Este factor se ve exacerbado por la columna xml_diff de la tabla, un tipo de datos de TEXTO que ralentiza aún más el procesamiento.

Estrategias de optimización

Para acelerar la consulta, vale la pena considerar dos enfoques :

  • Optimizar tabla: Este comando reorganiza las páginas de datos en orden, mejorando potencialmente la eficiencia. de escaneos de rango.
  • Crear índice adicional: Al establecer un índice no principal únicamente en la columna change_event_id se crea una copia de esa columna en las páginas de índice. Este índice se puede escanear considerablemente más rápido que las páginas de datos. Verifique el plan de explicación posterior a la creación para confirmar su utilización.

Consejo adicional:

Para mejorar aún más el rendimiento, considere modificar la columna change_event_id a bigint unsigned. Este paso evita valores negativos y también puede agilizar el procesamiento.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3