본문 바로가기
카테고리 없음

postgresql 쿼리 공부

by 흰색남자 2023. 5. 29.

인덱스를 만들어도 무조건 빨라지지 않는다.

varchar타입을 사용하는 컬럼에 일반 인덱스를 걸어서 성능개선을 해보려고 했지만 옵티마이저도 seq_scan 성능이 더 좋게 판단했는지 인덱스를 타지 않았고, 힌트를 사용해도 결과는 달라지지 않았다.

그래서 pg_trgm을 사용하여 엘라스틱서치 처럼 역 인덱스를 만들어서 빨라지나 확인을 해보려고 했는데, 역시 빠르진 않았다.

pg_trgm을 사용하여 인덱스르 만들었을 경우에는 seq_scan을 타지 않았고, 무조건 인덱스를 타고 데이터를 조회했다.
인덱스를 잘못 만들면 crud 모든 성능이 떨어질 수 있으니 조심해야 할 것 같다.

사용 환경은 약 30만 건의 데이터가 있는 단일 테이블에서 진행하였고, 결과는 다음과 같다.

pg_trgm을 사용하여 역 인덱스를 만든 경우

일반 인덱스를 사용했을 경우

인덱스가 없는 경우