yoond
34
2020-05-08 15:39:37
4
324

RDBS 커넥션 풀 사용하는 상황에 대한 질문입니다.


안녕하세요. MYSQL 공부중에 질문이 있어 글을 남기게 되었습니다.

DB를 공부하면서 커넥션 풀 개념을 배우게 되었는데요. 제가 정확히 이해한것이 맞는지 모르겠지만 단순 쿼리 요청은 매번 드라이버를 로드하고 커넥션을 생성 후, 쿼리를 실행하고 커넥션을 종료시켜서 같은 행동이 반복된다고 알고 있습니다.

그래서 요청이 많은경우에 반복되는 과정을 줄이기 위해 커넥션을 미리 준비해놓고 쿼리를 실행한후 커넥션을 종료하지 않고 쿼리 실행이 끝나면 다른 쿼리요청을 위해 실행중인 커넥션을 돌려쓰는... 개념으로 이해를 했습니다.

이런 개념이라면 제가 생각하기에는, 사용자가 한명이든지 여러명이든지 상관없이 모든 상황에서 일반 쿼리보다 커넥션풀을 쓰는 것이 유리하다고 생각이 되는데요. 커넥션 풀을 사용하지 않아야 하는 상황이 있는지 궁금합니다.

개념상으로는 커넥션 풀만 써야할 것 같은데 Node.js의 MYSQL 튜토리얼들이 커넥션 풀을 사용하지 않고 쿼리명령어로 작성되어있어서 실제로도 사용하는 것인지 궁금해져서 질문드리게 되었습니다.

시간내서 확인해주셔서 감사합니다.


0
  • 답변 4

  • sungwon-dev
    218
    2020-05-08 18:56:32

    커넥션을 유지해야 하는 상황이 있고 유지하지 않아도 되는 상황이 있지 않을까요?


  • yoond
    34
    2020-05-09 20:38:07

    sungwon-dev 

    커넥션을 유지하지 않아도 되는 상황이 어떤 상황인지 궁금합니다.

    공부한 내용으로는 커넥션 풀을 이용하지 않는 경우 디비에 연결하는 과정이 반복된다고 하는데 그렇다면 개발환경이나 사용자 수와는 상관없이 커넥션을 종료하지않고 살려서  쓰는 커넥션 풀 방식이 유리하다고 생각이 되어서요.

  • sungwon-dev
    218
    2020-05-11 10:13:52

    '사용자'라는 표현을 하셔서 그런데 웹서버에 초점을 두고 계신건 아닌지 여쭤보고 싶습니다.


    예를 들어 a라는 job이 있다고 가정해보겠습니다.

    1. a는 batch job으로서 12시간을 수행하는 job이다.

    2. DB를 사용하는 step은 a의 시작 시간과 종료 시간을 기록하는 step만 존재한다.

    위와 같은 경우에 12시간 동안 커넥션을 유지하는 코스트를 가져가는 게 좋을까요? 아니면 시작과 끝에 커넥션을 연결하는 것이 좋을까요?


    다만 웹서버처럼 언제 커넥션이 필요할지 모르는 상황, 커넥션 활용 빈도가 높은 상황에는 작성해주신 것처럼 풀을 사용하는 것이 훨~~씬 이득이겠습니다.


  • yoond
    34
    2020-05-11 14:45:48

    sungwon-dev 

    제가 웹서버에만 초점을 맞추고 있었네요. 이해되었습니다. 감사합니다!

  • 로그인을 하시면 답변 을 등록할 수 있습니다.