인덱스

데이터베이스/RDB

[MySQL] 인덱스를 활용한 Join 성능 개선

현상 여러 테이블을 Join 하여 Select을 했는데 꽤 오래 걸려서 쿼리를 분석하기위해 explain 을 쿼리앞에 붙혀서 실행했다. 결과로 rows 값이 비정상적으로 많은 테이블을 발견했다. extra를 확인해보니 Using join buffer(Block Nested Loop)라는 내용이 있었다 원인 Using join buffer(Block Nested Loop) 의 의미는 조인에 적절한 인덱스가 없어 조인 버퍼를 이용했음을 뜻하는데 결과적으로 테이블 조인 조건을 PK와 달리 인덱스가 없는 컬럼에 걸어서 오래 걸렸던 것이다. 해결 CREATE INDEX 인덱스이름 ON 테이블이름 (필드이름1, 필드이름2, ...) 해당 컬럼에 인덱스를 추가하여 다시 SELECT 해본 결과 성능이 개선됐다. 하지만..

옥탑방고래
'인덱스' 태그의 글 목록