묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
xe에서 코멘트가 저장되는 테이블 구조
2011.02.15 00:24
웹호스팅사에서 연락이 왔는데 MYSQL 이용과정에서 한개의 테이블에 120만개의 코멘트가 달려있어서, 더군다나 이것이 검색 과정에서 포함이 되기 때문에 서버에 상당한 무리를 주는지라 곤란한 상황이라고 합니다.
제 사이트에는 여러 게시판이 있는데 그 중에 자료실이 하나 있습니다.
지금은 관뒀지만 얼마 전까지만해도 이 자료실에서 첨부파일을 내려받으려면 반드시 코멘트를 작성해야만 했습니다. 코멘트를 작성하지 않으면 다운로드가 불가능하게 조치되어 있었기 때문에, 이 상태로 몇년이 지나니까 결국 오늘처럼 그 문제의 하나의 자료실 게시판에만 코멘트만 120만개가 달리는 결과가 초래 되엇네요. 이렇게 될 줄은 생각을 못했지요...;
제가 웹에 대해서 잘 모르는지라, 몇가지 궁금한 것이 있습니다.
1.
하나의 테이블에 120만개의 코멘트가 등록되었다는 것. 비록 비정상적이긴 하지만 그래도 이 자체만으로 서버에 무리를 주는 일은 없을텐데, 문제는 검색을 할때 댓글이 검색될 때가 문제가 되는 건가요? (호스팅사에서 검색과 관련된 언급을 했었습니다)
확실히 제로보드 xe는 댓글까지 검색할 수 있는 기능이 있더군요. 댓글을 검색하게 되면 120만개의 댓글을 모조리 검색하게 되니까 분명 서버에 무리가 가게 될 것 같습니다.
혹시 이 경우 외에 '한 테이블에 120만개의 코멘트'가 서버에 무리를 주게되는 다른 경우가 있나요?
없다면 댓글 검색만 막아놓으면 문제는 해결될런지요?
2.
혹시 댓글 검색을 막아 놓는것만으로 문제가 해결되지 않는다면 다른 방안을 찾아야 할텐데요.
제가 PHP의 P자도 모르는지라... 그래도 머리를 굴려보면
한 게시판에 많은 코멘트가 달린 것이 문제가 된 것이므로 게시판을 여러개 만들어서 게시물들을 분할하면 문제가 해결될까요? 게시물이 분할되면 그 게시물에 딸린 코멘트들도 같이 분할될테니까요.
3.
아니면 특정 게시판의 댓글들만 모조리 지워버리는(....) 방법이라도 있습니까?
웹호스팅사에서는 이 문제가 되는 하나의 테이블, 즉 120만개의 코멘트가 달려있는 이 문제의 테이블을 어떻게 조치를 해야만 한다고 하는군요. 제가 나름대로 생각한
1) 코멘트는 그대로 두되 다만 댓글 검색을 막는 방법
2) 게시판을 여럿 만들어서 게시물들을 분산시키는 방법
3) 어떻게든 그 문제가 되는 게시판의 모든 댓글을 삭제시켜버리는 방법
이 3가지 외에 다른 좋은 방법이 있을까요?
제 사이트에는 여러 게시판이 있는데 그 중에 자료실이 하나 있습니다.
지금은 관뒀지만 얼마 전까지만해도 이 자료실에서 첨부파일을 내려받으려면 반드시 코멘트를 작성해야만 했습니다. 코멘트를 작성하지 않으면 다운로드가 불가능하게 조치되어 있었기 때문에, 이 상태로 몇년이 지나니까 결국 오늘처럼 그 문제의 하나의 자료실 게시판에만 코멘트만 120만개가 달리는 결과가 초래 되엇네요. 이렇게 될 줄은 생각을 못했지요...;
제가 웹에 대해서 잘 모르는지라, 몇가지 궁금한 것이 있습니다.
1.
하나의 테이블에 120만개의 코멘트가 등록되었다는 것. 비록 비정상적이긴 하지만 그래도 이 자체만으로 서버에 무리를 주는 일은 없을텐데, 문제는 검색을 할때 댓글이 검색될 때가 문제가 되는 건가요? (호스팅사에서 검색과 관련된 언급을 했었습니다)
확실히 제로보드 xe는 댓글까지 검색할 수 있는 기능이 있더군요. 댓글을 검색하게 되면 120만개의 댓글을 모조리 검색하게 되니까 분명 서버에 무리가 가게 될 것 같습니다.
혹시 이 경우 외에 '한 테이블에 120만개의 코멘트'가 서버에 무리를 주게되는 다른 경우가 있나요?
없다면 댓글 검색만 막아놓으면 문제는 해결될런지요?
2.
혹시 댓글 검색을 막아 놓는것만으로 문제가 해결되지 않는다면 다른 방안을 찾아야 할텐데요.
제가 PHP의 P자도 모르는지라... 그래도 머리를 굴려보면
한 게시판에 많은 코멘트가 달린 것이 문제가 된 것이므로 게시판을 여러개 만들어서 게시물들을 분할하면 문제가 해결될까요? 게시물이 분할되면 그 게시물에 딸린 코멘트들도 같이 분할될테니까요.
3.
아니면 특정 게시판의 댓글들만 모조리 지워버리는(....) 방법이라도 있습니까?
웹호스팅사에서는 이 문제가 되는 하나의 테이블, 즉 120만개의 코멘트가 달려있는 이 문제의 테이블을 어떻게 조치를 해야만 한다고 하는군요. 제가 나름대로 생각한
1) 코멘트는 그대로 두되 다만 댓글 검색을 막는 방법
2) 게시판을 여럿 만들어서 게시물들을 분산시키는 방법
3) 어떻게든 그 문제가 되는 게시판의 모든 댓글을 삭제시켜버리는 방법
이 3가지 외에 다른 좋은 방법이 있을까요?
지울때 where <meta charset="utf-8">module_srl=게시판의 <meta charset="utf-8">module_srl 값을 넣어서 조건문을 주면 그 게시판의 댓글만 지워 질겁니다.
분산 시키는 방법은 xe는 게시판도 1개의 테이블로 이용합니다. 댓글도 1개의 테이블에 저장되므로 분산 시켜 봐야 실제 테이블에는 그대로 입니다. <meta charset="utf-8">module_srl 가 게시판을 <meta charset="utf-8">module_srl값을 저장하고 있습니다.
1번 방법은 검색을 수정할수 는 있습니다.