질문/조언질답게시판
Extra Form
PHP PHP 7.3
CMS XpressEngine

1. SELECT sum(comment_count) FROM `xe_documents`; ( 2440507개 )
2. SELECT COUNT(*) FROM xe_comments ( 2440238개 )

 

문서의 댓글 카운트와 실제 댓글 수가 같지 않은 상황입니다.

 

실제 댓글 수과 comment_count 칼럼 사이에 +269개의 숫자 차이가 발생합니다

 

마이너스가 아닌 플러스인 것을 보아 comment_count 칼럼의 카운트가 잘못된 것 같습니다

 

댓글을 달면 해당 문서의 comment_count 가 다시 카운트 되고 있어, 격차가 조금씩 줄어들긴 하는데

 

sql 명령어로 한번에 해당 칼럼을 업데이트 하는 방법 없을까요?

  • profile
    delete from xe_comments where 0 >= (select count(*) as cnt from xe_documents where xe_comments.document_srl = xe_documents.document_srl);

    댓글 똥 삭제하는 이 팁을 적용하고나서 카운터 숫자가 안맞는 듯 합니다
  • profile

    XE를 통해 정식으로 삭제하지 않고 xe_comments DB를 임의로 조작했다면 안 맞는 게 당연하지요.

     

    댓글 수가 200만 개가 넘는다면 join 쿼리로 한 방에 업데이트하기는 힘들겠고, 문서 기준으로 루프 돌면서 각각 다시 카운트해야 할 것 같습니다.