es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

AWS RDS MySQL Aurora: consultas select extremadamente lentas.

Tengo una base de datos de RDS MySQL Aurora (db.t2.medium) alojada en la región de us-east
.

Una consulta de selección que devuelve alrededor de 25.000 (5 MB) filas tarda aproximadamente 3 minutos.
(Cuando es ejecutada por mi backend (misma VPC que la base de datos) y ejecutada por mí a través de MySQL Workbench desde India).

La misma consulta en la copia de seguridad de la misma base de datos en mi local tarda menos de 2 segundos (usando MySQL Workbench) y devuelve el mismo número de filas (25.000).

He revisado las métricas de utilización de CPU de mi instancia de base de datos y no hay picos/sorpresas allí.

Mi base de datos está alojada en la región de us-east y estoy ejecutando la consulta desde India utilizando MySQL Workbench.
Cabe destacar que cuando la consulta es ejecutada por mi backend en la base de datos (que están en la misma VPC), la consulta sigue siendo demasiado lenta.

Cuando hago la consulta desde India a mi instancia de RDS a través de MySQL Workbench, el tiempo de duración es inferior a un segundo, pero el tiempo de extracción es de alrededor de 3 minutos (con o sin VPN).
duración vs extracción.

Cuando hago la misma consulta en la copia de seguridad de la misma base de datos en mi local, la duración es casi la misma, pero el tiempo de extracción es de alrededor de 1 segundo (el mismo número de filas).

No estoy seguro(a) de por qué no hay mucha diferencia en el tiempo de extracción?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución de problemas de consulta lenta en RDS MySQL Aurora DB

    Descripción del problema

    Una consulta SELECT que devuelve alrededor de 25.000 filas (5 MB) tarda aproximadamente 3 minutos cuando es ejecutada por el backend (que está en la misma VPC que la base de datos RDS MySQL Aurora en la región de us-east) y ejecutada a través de MySQL Workbench desde India. Sin embargo, en el volcado de la misma base de datos en la máquina local, la misma consulta tarda menos de 2 segundos utilizando MySQL Workbench y devuelve el mismo número de filas (25.000).

    Posibles causas y soluciones

    1. Latencia de red: Dado que el tiempo de consulta es mucho más rápido cuando se ejecuta localmente, podría significar que la latencia de red entre la instancia de RDS y el cliente (en India) es alta. Algunas posibles soluciones para este problema son:
    • Verificar la latencia de red entre la instancia de RDS y el cliente en India para verificar si hay algún problema.
    • Utilizar Amazon CloudFront para acelerar la entrega de contenido a los usuarios finales, lo que permite una latencia más baja y velocidades de transferencia de datos más rápidas.
    • Crear una réplica de lectura de la instancia de RDS en India para reducir la latencia de red.
    1. Límite de QPS (consultas por segundo): RDS tiene un límite en el número de consultas que se pueden ejecutar por segundo. Si el número de consultas excede el límite, las consultas se encolan, lo que resulta en una ejecución lenta. Para verificar si este es el caso, se puede:
    • Utilizar Amazon RDS Performance Insights para monitorear el rendimiento de la base de datos, la latencia de las consultas y el límite de QPS.
    • Aumentar el número de instancias de RDS DB para mejorar el rendimiento.
    • Optimizar la consulta para reducir el número de consultas.
    1. Configuración de la base de datos: Otra causa potencial podría ser la configuración de la base de datos en la instancia de RDS, lo que puede afectar el rendimiento. Algunas soluciones para esto incluyen:
    • Verificar las configuraciones de la instancia de RDS (CPU, RAM) y actualizarlas si es necesario.
    • Modificar la aplicación para usar Amazon Aurora o Amazon RDS Proxy para el agrupamiento de conexiones.
    • Verificar los parámetros de RDS y de la base de datos para asegurarse de que estén configurados para un rendimiento óptimo.

    Conclusión

    Los problemas de rendimiento de las consultas pueden ser causados por diversos factores, y es necesario solucionarlos de manera sistemática. En este caso, las posibles causas podrían ser la latencia de red, el límite de QPS o la configuración de la base de datos. Por lo tanto, se recomienda que el experto en TI investigue estas áreas para mejorar el rendimiento de la consulta.

Comments are closed.