MySQL 쿼리문 질문드립니다.

MySQL 쿼리문 질문드립니다.

QA

MySQL 쿼리문 질문드립니다.

본문

select * from g5_write_ch1 where wr_is_comment = 0   order by wr_datetime desc   limit 0, 20;

 

이게 무슨 뜻인지 알고싶습니다.

 

MySQL 로드가 심해서 슬로우쿼리 로그를 수집해 봤는데,

게시판ID별로 저런게 계속 쌓입니다.

도와주세요!

이 질문에 댓글 쓰기 :

답변 3

where wr_is_comment = 0
은 코멘트(댓글) 이 아니라는 뜻입니다.

(where wr_is_comment = 1 은 코멘트(댓글)이라는 뜻 / 그누보드에서는 게시글과 댓글을 같은 테이블에 저장)

 

select * from g5_write_ch1 where wr_is_comment = 0   order by wr_datetime desc   limit 0, 20;

은, ch1 게시판의 첫번째 페이지 목록을 불러오는 기본 쿼리입니다.

(메뉴 > ch1게시판 을 클릭했을 때, 첫번째 페이지 목록)

 

첫번째 페이지 목록을 불러오는 쿼리가 시간이 많이 걸린다면.. 해당 쿼리를 직접 db 툴에서 실행해서.. 실행시간을 측정해서 줄일 수 있는 방법을 찾아보는 것이 좋습니다.

잠깐 봤을 때 특이사항은 wr_datetime desc 로.. 이는 게시판 설정의 정렬 설정을 '날짜 최근것부터' 으로 설정한 것 같습니다. 리스트 정렬 설정을 '기본'(wr_num, wr_reply)으로 바꾸어도 문제가 없다면.. (속도 관련해서..) '기본'으로 바꿔보는 것을 추천하겠습니다. (그누보드의 정렬 설정 기본은 최근 등록된 게시글부터 나오게 됩니다. 대체로 '날짜 최근 것부터'와 동일)

게시판 리스트 열람시에 일반적으로 사용되는 쿼리입니다. /bbs/list.php 에서 사용되고 쿼리 자체에는 특별한 문제가 없는 거 같네요.

쿼리문 내용만 보면 ch1게시판의 코멘트가 아닌 게시글을 날짜순으로 정렬하여 20개를 뽑아오는 쿼리입니다.

아마 게시판을 눌렀을때 가장 첫페이지에서 실행되는 기본적인 쿼리문으로 보입니다.

해당 쿼리가 슬로우쿼리로 동작된다면 게시판 db가 너무 많이 쌓였거나 불러오는 값 중 너무 큰 값이 있거나 한 것 같네요.

게시글이 너무 많다면 테이블 최적화나 게시판을 새로 만드시고 과거에 쓰던건 조회용으로만 두시는것도 하나의 방법입니다

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

회원로그인

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