Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ Relational Database Service/ Guía del usuario/ Trabajar con RDS for MySQL/ Ajuste de rendimiento/ Solución de problemas de SQL lento para instancias de base de datos de RDS for MySQL
Actualización más reciente 2024-06-06 GMT+08:00

Solución de problemas de SQL lento para instancias de base de datos de RDS for MySQL

Esta sección describe cómo solucionar problemas de sentencias SQL lentas en instancia de base de datos de RDS for MySQL. Para cualquier escenario de servicio dado, la eficiencia de la consulta depende de la arquitectura y del diseño de la tabla de la base de datos y del índice. Arquitectura e índices mal diseñados causarán muchas sentencias SQL lentas.

Sentencias SQL lentas causadas por excepciones de SQL

  • Causas y síntomas

    Existen muchas causas para las excepciones de SQL, por ejemplo, el diseño inadecuado de la estructura de la tabla de la base de datos, la falta de índices o demasiadas filas que deben analizarse.

    En la página de registros de consultas lentas de la consola de gestión, puede descargar registros de consultas lentas para identificar las sentencias SQL lentas y ver cuánto tiempo tardaron en ejecutarse. Para obtener más información, consulte Consulta y descarga de registros de consultas lentas.

  • Solución

    Optimice las sentencias de SQL que necesita ejecutar.

Sentencias SQL lentas causadas por límites de instancia de base de datos

  • Causas y síntomas

    El rendimiento de la instancia de base de datos se puede limitar porque:

    • Sus cargas de trabajo han ido aumentando, pero el almacenamiento no se ha ampliado en consecuencia.
    • El rendimiento de la instancia de base de datos se ha deteriorado a medida que el servidor físico de la instancia envejece.
    • La cantidad de datos ha ido en aumento y la estructura de los datos ha ido cambiando.

    Puede ver el uso de recursos de la instancia de base de datos en la consola. Si los valores de todas las métricas de uso de recursos están cerca del 100%, la instancia de base de datos puede alcanzar su rendimiento máximo. Para obtener más información, consulte Consulta de métricas de monitoreo.

  • Solución

    Actualice la clase de instancia. Para obtener más información, consulte Cambio de clase de una instancia de base de datos.

Sentencias SQL lentas causadas por actualizaciones de versión

  • Causas y síntomas

    La actualización de la instancia de base de datos puede cambiar el plan de ejecución de SQL. Los tipos de unión determinados en el plan de ejecución son, en orden descendente de eficiencia:

    system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > all

    Para obtener más información, consulte documentación oficial de MySQL.

    Si la aplicación reenvía con frecuencia solicitudes de consulta que especifican uniones de intervalos e índices, pero RDS procesa estas solicitudes de consulta lentamente, se paralelizan varias sentencias SQL. En este caso, su aplicación es lenta para liberar subprocesos. Como resultado, las conexiones en el grupo de conexiones se agotan, lo que afecta a todas las cargas de trabajo de su instancia de base de datos.

    Puede iniciar sesión en la consola para ver cuántas conexiones actuales ha establecido su instancia de base de datos. Para obtener más información, consulte Consulta de métricas de monitoreo.

  • Solución

    Analizar el uso del índice y el número de filas que analizar, estimar la eficiencia de la consulta, reconstruir sentencias SQL y ajustar índices. Para obtener más información, consulte Ejecutar un plan de SQL.

Sentencias SQL lentas causadas por configuraciones inadecuadas de parámetros

Sentencias SQL lentas causadas por operaciones por lotes

  • Causas y síntomas

    Se realiza un gran número de operaciones para importar, eliminar y consultar datos.

    Puede ver Total Storage Space, Storage Space Usage y IOPS en la consola. Para obtener más información, consulte Consulta de métricas de monitoreo.

  • Solución

    Realice operaciones por lotes durante las horas fuera de pico, o sepárelas.

Sentencias SQL lentas causadas por tareas programadas

  • Causas y síntomas

    Si la carga de la instancia de base de datos cambia regularmente con el tiempo, es posible que haya tareas programadas que lo causen.

    Puede ver DELETE Statements per Second, INSERT Statements per Second, INSERT_SELECT Statements per Second, REPLACE Statements per Second, REPLACE_SELECTION Statements per Second, SELECT Statements per Second y UPDATE Statements per Second en la consola para determinar si la carga ha cambiado regularmente. Para obtener más información, consulte Consulta de métricas de monitoreo.

  • Solución

    Ajuste la hora en que se ejecutan las tareas programadas. Se recomienda ejecutar tareas programadas durante las horas fuera de pico y cambiar la ventana de mantenimiento a horas fuera de pico. Para obtener más información, consulte Cambio de la ventana de mantenimiento.