이게 맞는 말인가요? 챗GTP를 이용한 인덱싱작업;;;

이게 맞는 말인가요? 챗GTP를 이용한 인덱싱작업;;;

QA

이게 맞는 말인가요? 챗GTP를 이용한 인덱싱작업;;;

본문

서버이전 후 게시물 읽는 속도가 너무 느려졌습니다.

게시물 수가 얼마 안 되는 게시판은 빠른데,

수천개 되는 게시판은 읽는 속도가 무려 5,6초가 넘게 걸려버리네요.

질문해보니 인덱싱(?)을 하라고 하셔서... 지식이 워낙 없는지라 챗GTP에게 물어봤거든요.

 

질문 

그누보드 게시판 이름이 free야. 로딩 속도가 느려. 인덱싱 방법을 알려줘

 

답변 

그누보드 게시판에서는 일반적으로 "g5_board"라는 테이블을 사용합니다. "free"라는 게시판의 경우, "g5_board" 테이블에서 "bo_table"이 "free"인 데이터를 가져와서 표시하게 됩니다.

따라서, "g5_board" 테이블에서 "bo_table" 열에 대한 인덱스를 생성하여 "free" 게시판의 조회 속도를 향상시킬 수 있습니다.

다음은 인덱스 생성 쿼리 예시입니다.

ALTER TABLE `g5_board` ADD INDEX `idx_bo_table` (`bo_table`);

 

재질문 

Key 칼럼 'g5_board_id'는 테이블에 존재하지 않습니다.

 

재답변

죄송합니다. "g5_board_id"가 실제로는 "bo_table"이라는 칼럼 이름으로 사용되었습니다. 그래서 인덱스 생성 쿼리는 다음과 같이 수정되어야 합니다.

ALTER TABLE `g5_write_free` ADD INDEX `idx_bo_table_wr_is_comment` (`bo_table`, `wr_is_comment`);

 

재재질문

Key 칼럼 'bo_table'는 테이블에 존재하지 않습니다.

 

재재답변

ALTER TABLE `g5_write_free` ADD INDEX `idx_board_id_wr_is_comment` (`board_id`, `wr_is_comment`);

 

ㅡㅡ;;; 끝까지 안되더라구요

 

우여곡절 끝에 

 

답변 : 아래와 같은 쿼리를 실행하면 g5_write_free 테이블에 bo_table 필드가 추가됩니다.

ALTER TABLE g5_write_free ADD bo_table varchar(20) NOT NULL;

 

만약 bo_table 필드가 추가되었다면, 해당 필드에 인덱스를 생성하여 성능을 향상시킬 수 있습니다. 다음과 같이 쿼리를 실행하면 인덱스가 생성됩니다.

ALTER TABLE g5_write_free ADD INDEX idx_bo_table(bo_table);

 

이렇게 답변을 받아 실행시켜 보았지만, 똑같습니다 ㅜㅜ;;;

 

서버환경 동일한데도, 왜 갑자기 게시물 읽는 속도가 느려진건지...

유독 게시물 수 수백개는 속도가 빠른데 수천개 이상부터 속도가 느린것인지...

이걸 복구하려면 어떻게 해야 하는 것인지 ㅠㅠ

 

도무지 모르겠습니다ㅠㅠㅠ 

제가 초보라서 단순하게 인덱싱하라고 하면 저렇게 삽질만 하고 있어서 답답하네요...

추가로, 느려지는 게시판 때문에 서버 사양을 훨씬 잡아먹는 느낌입니다 ㅠㅠ

도와주십쇼 ㅠㅠ

 

 

 

이 질문에 댓글 쓰기 :

답변 2

게시판 테이블에는

g5_board  <-- 게시판들의 설정테이블

  컬럼으로  bo_table이 존재함

   여기에 명시된 bo_table중 free 가 값으로 있다면

 

g5_write_free 라는 테이블이 생성되는 구조라서

 

g5_write_free 에 index를 추가하면됩니다

그런데 chatGPT가 답변을 준것같이 g5_write_free 에는 bo_table 컬럼이 없습니다.

추가할 필요도 없죠 

왜냐하면 g5_write 는 그누보드가 게시판으로 사용하는 prefix 값이고 그중에서 g5_ 는 기본설정이지만 다른명칭이 될수도있죠

제거하면 write만 남게될수도있습니다만.. 이건 나중에 테스트 해보시면서 정리하시면되고

 

다시원점으로 돌아와서

 

g5_를  그누보드 기본 prefix로 사용할경우

게시판의 prefix는 g5_write_ 가 되고

g5_board에 존재하는 bo_table 값 free 에 따라

g5_write_free 에 이미 테이블명 자체가 bo_table 정보가 됩니다.

 

이건 소스코드를 천천히 따라가보시면 알수있습니다.

 

다시 최초 질문의 원점으로 돌아와서

게시판의 로딩속도가 느리다.. 

왜 느린지의 원인파악이 table때문인지 점검해보셨나요?

 

table때문이 맞다면

 

기본적으로 g5_write_free 와 같이 게시판에서는 wr_id가 primary Key로 존재해서 

기본적인 index가 설정되어있습니다.

 

게시판의 기본형이라면 리스트 로딩이 느릴이유가 없습니다.

 

퍼블리싱하거나 기타 추가된 모듈로 인해서 느린것이라면

아무리 index를 추가하는 쿼리 튜닝을 한다고해서 속도가 개선되지 않습니다.

 

브라우저에서 개발자 도구를 켜고 네트워크 영역을 켜놓으상태에서

느린 페이지를 로딩시켜보시면

어느 부분에서 느려지는지 알수있습니다.

그 느려진부분이 해당 페이지를 불러오는 코어부분이 느리다면

index를 추가하기위한 리스트 컬럼/조건을 살펴보는게 맞고

그게 아니라면

느린 요소를 불러오는것을 제거하면서 테스트해보셔야 정확한 속도개선이 가능할겁니다.

리스트는 빠릅니다. 게시물 읽기 속도가 느려요 ㅠㅠ f12개발자 도구 네트워크 확인해봐도 리스트가 아닌 도메인.com/bbs/board.php?bo_table=free 딜레이가 엄청 빡시게 걸립니다 ㅠㅠ
그 외 사이트 로딩속도 등등은 다 빠릅니다 ㅠ

저기 혹시 url 주소를 알 수 있을까요?

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

회원로그인

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