consulta usando la base de datos/sql significativamente más lento que consultar la base de datos directamente
a pesar de usar consultas idénticas, existe una discrepancia de rendimiento notable entre ejecutar A a A Consulte directamente con la utilidad PSQL de Postgres y utilizando el paquete de base de datos/SQL en una aplicación GO. Esta discrepancia, donde las consultas que toman milisegundos en PSQL toman decenas de milisegundos en GO, podría atribuirse a factores específicos en la implementación.
Comprender las conexiones de la base de datos/SQL
] La base de datos/SQL inicializa un grupo de conexión para establecer conexiones a la base de datos, en lugar de crear una sola conexión. El retraso inicial en la ejecución de la consulta en la base de datos/SQL se debe a que el grupo comienza con cero conexiones abiertas. La primera consulta debe establecer una conexión al servidor antes de ejecutar la instrucción SQL.
consultas posteriores también enfrentan retrasos ya que la conexión desde la primera consulta no se ha lanzado de nuevo al grupo. Esto significa que cada consulta posterior necesita crear una nueva conexión antes de ejecutar la consulta.
liberando conexiones nuevamente al grupo
para resolver la discrepancia de rendimiento, asegure que las conexiones se lanzan de nuevo a la piscina después de cada consulta. La liberación de una conexión implica retener el valor de retorno principal de db.Query y posteriormente llamar al método de cierre en él.
inicializando el grupo con una conexión abierta
para mitigar el Retraso inicial, llame a Ping en el grupo de conexión inmediatamente después de la inicialización. Esto garantiza que al menos una conexión esté disponible en el grupo.
preparó declaraciones
aunque consultas simples sin argumentos se ejecutan como se esperan, consultas con argumentos en la base de datos/sql En realidad, cree y ejecute declaraciones preparadas debajo del capó. Las declaraciones preparadas ofrecen beneficios de rendimiento al ejecutar la misma consulta varias veces con diferentes argumentos.
abordando la latencia adicional
además de la gestión de la conexión y las declaraciones preparadas, puede haber factores de latencia adicionales adicionales Para considerar:
abordando estos factores e implementando las recomendaciones proporcionadas, el rendimiento de las consultas utilizando la base de datos/SQL puede mejorarse significativamente, lo que hace que sea comparable a la consulta de la consulta base de datos directamente.
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