g5_point 질문입니다.

g5_point 질문입니다.

QA

g5_point 질문입니다.

본문

현재 g5_point 테이블 용량이 4기가가 넘어가서 너무 무겁습니다.

혹시 g5_point내역을 현재값을 제외한 모든 내역을 삭제할 순 없을까요?

참고로 아미나를 사용중이며, 열람기능을 사용하고 있어 https://sir.kr/g5_plugin/663 플러그인 사용하면 포인트에 커다란 오차가 생겨버립니다...ㅠㅠ

이 질문에 댓글 쓰기 :

답변 4

구상을 해 본 적은 있는데, 실제 실행해보지는 못했습니다.

만일의 상황 대비 기존 테이블 백업 후, 다음과 같이 진행하는 것을 추천합니다.

 

1. 기존 point 테이블 백업 (만일의 상황 대비)

2. 기존 point 테이블 전체 데이터 삭제 


truncate table g5_point;

3. 각 회원들의 현 보유 포인트(g5_member.mb_point), point 테이블에 반영

※ 참조 쿼리


INSERT INTO `g5_point` 
(`mb_id`, `po_datetime`, `po_content`, `po_point`, `po_use_point`, `po_expired`, `po_expire_date`, `po_mb_point`, `po_rel_table`, `po_rel_id`, `po_rel_action`) 
select mb_id, now(), '포인트 내역 초기화', mb_point, 0, 0, '9999-12-31', mb_point, '@init', mb_id, '초기화'
  from g5_member
 order by mb_no asc;

아미나 빌더의 point 테이블이 원 그누보드 point 테이블과 다를 수도 있습니다.
만약 다른 부분이 있다면, (가령 추가된 칼럼이 있다던지 등등)
insert 문을 아미나 빌더의 point 테이블에 맞게 변경해 볼 수 있습니다.

삭제 하지 마시고 디비툴로 이름만 살짝 바꾸시고 필드 다시 만들어서 쓰세요 백업해야되요

포인트 테이블에 모든 행을 합하여 계산되어 회원정보의 포인트로 업데이트됩니다.

포인트 테이블의 내역을 모두 삭제하시고

회원정보를 불러와, 현재 가지고있는 포인트만큼을 다시 포인트 테이블로 insert하시면

행이 줄어들겁니다.

 

즉 포인트 테이블에서 아이디가 test라면

test / 100포인트

test / 300포인트

test / -200포인트

이런식으로 기록이 되는데,

회원정보에서 mb_point 에는 모든 계산된 값인 200포인트가 저장되어집니다.

 

따라서 모든 테이블의 행을 삭제하시고

회원정보를 루프로 반복하여 읽어들인 후

다시 point테이블에 최종 포인트값만 넣으시면됩니다.

물론 백업은 필수.

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

회원로그인

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