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/ TaurusDB/ Preguntas frecuentes/ Rendimiento de la base de datos/ ¿Cómo manejo un gran número de tablas temporales que se generan para transacciones largas y un alto uso de memoria?
Actualización más reciente 2025-05-22 GMT+08:00

¿Cómo manejo un gran número de tablas temporales que se generan para transacciones largas y un alto uso de memoria?

Escenario

El uso de memoria de una instancia de TaurusDB siguió aumentando de 11:30 a 12:27 y alcanzó el límite de memoria.

Figura 1 Uso de memoria

Causas posibles

  1. Compruebe el archivo processlist.log. En este ejemplo, que se muestra a continuación, hubo dos sentencias SQL lentas en ese período de tiempo.
    Figura 2 Declaraciones SQL lentas
  2. Analice los registros de consultas lentos generados en ese período de tiempo. Había alrededor de 90 GB de datos y alrededor de mil millones de filas de datos en los registros, y había dos sentencias SQL que tardaron de 40 a 50 minutos en ejecutarse. El tiempo de ejecución básicamente se superpuso cuando el uso de memoria subió en los resultados de monitoreo, por lo que sabemos que el alto uso de memoria fue causado por tablas temporales.

Solución

  1. Actualice las especificaciones de instancia para mantener el uso de memoria dentro de un rango adecuado, evitando que un aumento repentino en el tráfico cause un bloqueo de la OOM. Para obtener más información, véase Cambio de vCPUs y memoria de una instancia de BD.
  2. Optimice las sentencias SQL lentas según sea necesario.