3
164

db완전 초보인데 이게 맞는지 봐주실분 있나요?


web프로젝트에서 사람수가 조금 몰려드니 속도가 너무 느려져서 속도개선을 하는중입니다.

문제가 여러곳에서 있었지만 그 중 특히 db가 문제인거 같습니다. 다음과 같이 로그를 찍었을때 속도가 대략 20ms가 나오더라고요.

const start = new Date()
// db insert 쿼리 보내고 결과 받고
console.log(new Date() - start) //40


여기서 부터 궁금한게,

20ms가 나왔다는건 db가 초당 50명이 이론적으로 수용 가능하다는 소리가 맞나요?

그리고 그냥 단순히 insert하는건데도 20ms이면 너무 느린거 같은데 원래 이렇게 느린가요? insert하나 하는것도 이렇게 느리면 초당 접속자 1000명이 넘는 사이트들은 어떻게 만드는 걸까요?


감사합니다!

0
  • 답변 3

  • John Suhr
    4k
    2021-01-15 16:37:26 작성 2021-01-15 16:38:07 수정됨

    대기업은 하드웨어가 받쳐줍니다.. 로드밸런스로 똑같은 사이트 돌아가는 초고사양의 서버를 여럿 병렬로 연결하고 async 처리로 자원 이용률을 극한으로 끌어올리는 미친 운영으로 돌리는 것 같네요. 오히려 그런 곳은 ORM을 사용하지 쿼리를 직접 사용하는 경우가 적을 것 같습니다.

  • 쿠잉
    1k
    2021-01-15 16:53:14

    초당 접속자 모두가 DB를 타는것도, 1000명이 0ms까지 같이 쿼리를 수행하는것도 아니고 ,DB를 사용한다고 동일 테이블 , 동일 블럭을, 그리고 insert 만 하는것이 아니니까요

    DB에 Active Session 수가 50개만 되도 많은 편 입니다

    많이 올라간다면 스펙업을 하던가, 수평분할로 DB를 업무단위등으로 나누던가 아니면 redis 와 같은 cache로 업무를 돌리던가 다른 방법을 고민 해야죠


  • 개발 잘해지는 닉네임
    213
    2021-01-18 09:59:40

    John Suhr 하드웨어를 늘릴수가 없네요 ㅠㅠ 고민들 더 해봐야 겠습니다

    쿠잉 답변 감사합니다! 

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