페이지로딩때마다 포인트합계를 내려고하는데 부담이 많이될까요?

페이지로딩때마다 포인트합계를 내려고하는데 부담이 많이될까요?

QA

페이지로딩때마다 포인트합계를 내려고하는데 부담이 많이될까요?

본문

안녕하세요?

 

포인트테이블에서요. po_point를 sum함수로 총합계를 내려고합니다.

 

페이지 이동때마다 쿼리하면 얼마나 부담이 될까요?

 

물론 멤버테이블에 포인트 합계금액이 적혀있는건 봤습니다만..

 

커스텀을 하려다보니  별도의 sum 집계가 필요할것같습니다.

 

동접량은  천명정도라고 생각하고 , 서버자원은 클라우드서버에 물리듀얼코어 , 램8g , ssd 스펙을

 

가졌습니다. 

 

참고로 포인트테이블에는 주문거래량만큼  주문적립, 환불차감 , 그외에 기본 포인트테이블시스템이

 

짬뽕되서 테이블행은 엄청나게 많다는전제입니다.

 

 

이 질문에 댓글 쓰기 :

답변 3

테이블의 Row수가 많더라도

 

where 시킬 대상을 index를 적절하게 잘 걸어두시면

sum은 도출된 대상으로 처리합니다.

즉, 1명의 개인에 대한 sum만 처리되는 형태인거죠

 

그 sum의 부하를 줄이기위해서

 

그누보드에서는 member 테이블에 point의 변화가 발생하는 시점에

member테이블의 mb_point에 잔고(결과포인트=합산-차감)를 기록합니다.

 

point라는것을 어떤용도로 사용하느냐에 따라서 합산의 시점이 달라질듯 싶습니다.

 

read시점마다 piont에 변화를 준다면 

바로 직후 차감 포인트로 처리하는게 효과적일것이구요

그렇다고 하더라도 잔고-차감을 시키는게 현명하겠죠

 

부하가 걸리는 작동이라면

다른페이지와 다르게 로딩후 계산후표기 하도록 비동기 처리법을 사용하는것도 방법이 아닐까 싶습니다.

 

일단 동접사용자에게 포인트를 표현하는게 우선이 아닐까 싶네요

그후에 튜닝을 진행하셔도 될거 같습니다.

 

디비의 로직을 정확히 이해하지 못해서 생기는 고민인것같습니다.

덕분에 도움이 많이되었습니다.

아무래도 포인트테이블시스템처럼 하나더 테이블을 만들어서 합산을 따로 관리해야할것같네요.

답을 내놓고 애기하시네요 

테이블행은 엄청나게 많다는전제입니다.

포인트 테이블이 천이백만건정도 되고 접속이 없는 백업용서버인데 6초 정도 걸립니다.

클라우드 듀얼코어 램2기가입니다.

 

단일 서버에 실시간으로 직접 DB에서 뽑으면  어떻게 될지 ..

 

1시간에 1번씩 뽑아서 파일로 저장하는 방식 생각해보세요.

 

 

추가) 아래 플래토님 댓글보니 회원테이블에도 포인트가 있었죠 ㅎㅎ

백업서버 회원테이블을 이용해 포인트 합을 뽑아보니

 

0.15초 정도 걸리네요 row는 14만 정도 됩니다.

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 8
QA 내용 검색
filter #sum ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT