쿼리 인덱스 설정 좀 봐주세요
본문
g5_write_free 테이블에 59만개의 레코드가 있습니다.
확인해보니 bbs/view_comment.php에서
$sql = " select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment, wr_comment_reply";
이 쿼리문에서 슬로우쿼리가 지속적으로 발생합니다.
현재 이 테이블의 인덱스 설정은 아래와 같습니다.
ORDER BY 인덱스컬럼1, 컬럼2 : 복수의 키에 대해서 ORDER BY를 사용한 경우
WHERE 컬럼1='값' ORDER BY 인덱스 컬럼 : 연속하지 않은 컬럼에 대해 ORDER BY를 실행한 경우
이 경우 인덱스를 타지 않는다고 해서 다중인덱스를 생성해야한다는데
위 쿼리에서 wr_parent와 wr_in_comment는 이미 다중인덱스중이고,
wr_commnet와 wr_comment_reply칼럼에 인덱스를 걸긴했는데 order by절에 복수의 키라 인덱스를
타지 않는것 같습니다.
이 경우 wr_comment와 wr_comment_reply에 다중인덱스를 설정하면 인덱스를 타서 속도가 빨라질까요?
그리고 이 칼럼에 다중인덱스를 걸면 위의 view_comment.php의 쿼리문은 어떻게 수정해야할까요?
답변 3
explain select * from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 order by wr_comment, wr_comment_reply;
해서 결과값을 올리세요.
chatGPT에 해당 결과값을 올려도 도움받을 수 있습니다.
2초는 여전히 '슬로우 쿼리'입니다.
0.5초 이내를 추천합니다.
ALTER TABLE g5_write_free ADD INDEX idx_pccr (wr_parent, wr_is_comment, wr_comment, wr_comment_reply);
햐 챗GPT 무섭네요.
똑같은 질문을 chatGPT한테 했더니 1초만에 답을 알려줘서 알려준대로 설정했더니
5초 걸리던 쿼리가 2초내로 줄었습니다.
이제 기술자들 뭐 먹고 살지ㅠㅠ