"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 내 GO 데이터베이스/SQL 쿼리가 직접 Postgres PSQL 쿼리보다 상당히 느려지는 이유는 무엇입니까?

내 GO 데이터베이스/SQL 쿼리가 직접 Postgres PSQL 쿼리보다 상당히 느려지는 이유는 무엇입니까?

2025-02-06에 게시되었습니다
검색:215

Why is my Go database/sql Query Significantly Slower Than a Direct Postgres psql Query?

데이터베이스/SQL을 사용하여 데이터베이스를 직접 쿼리하는 것보다 상당히 느리게 쿼리하는

Postgres의 PSQL 유틸리티를 사용하고 GO 애플리케이션에서 데이터베이스/SQL 패키지를 사용하는 쿼리. PSQL에서 밀리 초가 걸리는 쿼리가 수십 밀리 초를 가져가는이 불일치는 구현의 특정 요인에 기인 할 수 있습니다. 데이터베이스/SQL은 단일 연결을 작성하지 않고 데이터베이스에 연결을 설정하기위한 연결 풀을 초기화합니다. 데이터베이스/SQL에서 쿼리 실행의 초기 지연은 풀이 열린 연결이 0으로 시작되기 때문입니다. 첫 번째 쿼리는 SQL 문을 실행하기 전에 서버에 대한 연결을 설정해야합니다. 이는 각 후속 쿼리가 쿼리를 실행하기 전에 새 연결을 생성해야한다는 것을 의미합니다.

Connections를 풀로 다시 출시하여

    각 쿼리 후에 수영장으로 다시 릴리스됩니다. 연결을 해제하는 것은 DB.Query의 1 차 반환 값을 유지하고 그에 대한 가까운 메소드를 호출하는 것이 포함됩니다. 초기 지연, 초기화 직후 연결 풀에서 핑을 호출하십시오. 이렇게하면 풀에서 하나 이상의 연결을 사용할 수 있습니다.
  • 준비된 진술
  • 인수가없는 간단한 쿼리는 예상대로 실행되지만 데이터베이스/SQL에 인수가있는 쿼리 실제로 후드 아래에서 준비된 진술을 작성하고 실행합니다. 준비된 명령문은 다른 인수로 동일한 쿼리를 여러 번 실행할 때 성능 이점을 제공합니다.

추가 대기 시간을 다루는

Why is my Go database/sql Query Significantly Slower Than a Direct Postgres psql Query?

고려 :

네트워크 지연 시간 :

응용 프로그램과 데이터베이스 사이의 네트워크를 통해 데이터 전송으로 인한 지연

서버로드 : [서버로드 :

&&] 데이터베이스 서버의 워크로드는 쿼리 실행 시간에 영향을 줄 수 있습니다. 데이터베이스 직접.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3