위토즈 - 개발자프로그램판매공간

정보공유

[SQL] 쿼리 성능 최적화

SELECT rm_ix, rm_date, rm_pos, rm_subject

FROM (SELECT COUNT(*) AS cnt, b.rm_ix, b.rm_subject FROM tblA as a inner join tblB as b on a.idx = b.idx where a.bk_status in ('대기', '완료') GROUP BY b.rm_ix, b.rm_date, b.rm_pos) AS GP

WHERE GP.cnt > 1

ORDER BY rm_date, rm_pos, cnt


를 아래와 같이 성능을 개선해서 사용가능하다.


1. 인덱스 최적화: tblA.bk_status, tblB.idx, tblB.rm_ix, tblB.rm_date 등에 적절한 인덱스를 추가.

2. 서브쿼리 제거: 현재 서브쿼리로 COUNT(*)를 계산한 후 필터링하는데, HAVING COUNT(*) > 1을 사용하면 불필요한 중첩을 줄일 수 있음.

3. JOIN 순서 최적화: g5_wb_booking을 먼저 필터링한 후 g5_wb_booking_location과 JOIN하면 불필요한 데이터 로딩을 줄일 수 있음.


SELECT 

    b.rm_ix, 

    b.rm_date, 

    b.rm_pos, 

    COUNT(*) AS cnt, 

    b.rm_subject

FROM tblA AS a

INNER JOIN tblB AS b 

    ON a.idx = b.idx

WHERE a.bk_status IN ('대기', '완료')

GROUP BY b.rm_ix, b.rm_date, b.rm_pos, b.rm_subject

HAVING COUNT(*) > 1

ORDER BY b.rm_date, b.rm_pos, cnt DESC;



개선 사항:

1. 서브쿼리 제거 → 직접 HAVING COUNT(*) > 1 사용하여 필터링.

2. 인덱스 활용 → tblA.bk_status 에 인덱스가 있으면 필터링 속도 증가.

3. 필요한 컬럼만 GROUP BY → 기존보다 더 많은 컬럼을 그룹핑해서 중복을 최소화.




인덱스를 확인하고 없으면 추가.


CREATE INDEX idx_booking_status ON tblA (bk_status);

CREATE INDEX idx_booking_location ON tblB (idx, rm_ix, rm_date, rm_pos);

정보공유
Total 453건 1 페이지
번호 제목 글쓴이 날짜 조회
453 자바스크립트를 이용해서 버튼 클릭시 이미지로 저장하는 방법 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-30 158
452 내부망의 자료를 외부에 연결해서 사용하게 하고 싶을때 사용하는 ngrok 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-27 237
451 html 폴더 생성하고 html 하위 파일은 확장자 없이도 연결가능하도록 .htaccess 파일 설정하기 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-21 354
450 on off 가능한 checkbox css + jquery 조합 버튼 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-17 382
449 비동기식으로 초성 버튼 클릭 보여주기 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-13 451
448 그누보드 관리자화면에 iframe 으로 띄울경우 엣지브라우저에서 튕기는 현상 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-17 1524
열람중 쿼리 성능 최적화 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 03-07 1445
446 스마트 에디터 세로 사이즈 강제로 해당 페이지에서만 늘리는 방법 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 02-28 1580
445 그누보드에 reCAPTCHA 설정하기 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 01-07 1671
444 mb_id 가 포함된 테이블 목록 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 11-22 2182
443 숫자형 input 요소 글자수 제한 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 08-29 2889
442 php 8.0 이상 버전에서 엑셀파일 업로드 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 07-18 4338
441 금액 카운팅 모션 다라라락 변화 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 06-26 3503
440 가장 심플한 예약 주문번호 생성 코드 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-28 4369
439 php 와 ajax 를 이용해서 파일 업로드 할때 대용량 파일을 업로드 하는 방법 위토즈쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 05-23 4811