DB 쿼리 qps부하 관련 질문입니다 . 0 2 1,091

by 잔돈 부하 쿼리 query PHP DB [2021.11.23 15:46:53]


안녕하세요.  독학 3년차 웹개발자입니다. 그누보드 기반 php언어를 주로 사용하는 개발자 인데요.

다름이 아니라 현재 운영중인 사이트가 3만명 정도의 회원을 가지고 있는데 1명당 10개의 데이터를 매주 인서트 하는 작업이 필요한데요. 

이미 구축은 다 되있는데 회원수가 점점 늘어가면서 부하가 심해져서 질문드립니다. 

앞서, 약 3만명에 회원이라하면 30만row 의 데이터를 다른테이블에 저장해두는 방식입니다.

연산만 약 3만 x 30만 정도로 예상을 하고 그사이에 구분코드 가공 쿼리로 업데이트 인서트등이 다수 존재합니다. 

먼저 조취를 취한부분은, 사양을 조금 업그레이드 해보았습니다. 메모리 8G -> 16G로 업그레이드 해주었고, 서버 환경설정도 구글링을 통해 최대한 적용해 보았습니다.
 

또한 쿼리 로직도 for문으로 10row 개별처리를 스트링배열로 묶어서 1명당 10row씩 1쿼리로 묶어서 처리하도록 변경하였습니다. 

슬로우 쿼리는 잡히지 않는것으로 확인되고, qps는 2500시작해서 30대까지 떨어지는 무지막지한 부하가 생기고 1주일째 꽁꽁 싸매도 해결되지 않아서 이렇게 질문 남깁니다. 

혹시 DB스키마 자체가 잘못인지, 혹은 물리적인 사양 문제인지, 단순 데이터양이 많아서인지, 로직이 문제인지 정확히 파악이 안됩니다. 

복합적인 문제라고 예상은 하고 있으나 혹시 개선방안이 있을지 조언 여쭙니다.

ps. 부하분산법) 서브테이블에 미리 작업후 업데이트 시키는 방식은 자제하려고 합니다. 회원정보가 바뀌면서 데이터 민감도가 높아서 선호하지 않는 방식입니다.!

by 잔돈 [2021.11.23 15:52:18]

추가적으로 DB select할때 필요한 컬럼만 뽑아오고, 인덱스설정도 마무리 해준 상태입니다.


by 축구쟁이 [2021.11.23 16:37:20]

부하가 어떤 부분에서 발생하는지 먼저 확인해보시는게 먼저인 것 같고, 그 이후에 개선 방안을 모색하거나 이쪽으로 질문해주시면
많은 분들이 답 해주실 수 있을 거라고 생각됩니다.

총 수행시간, 개별 수행시간, 작업이 진행되는 시간정보, 작업 실행방식 등 여러 부분에서 확인해보시면 좋을 것 같습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입