본문 바로가기
프로그래밍언어/DB, SQL

SQL 기본 튜닝 규칙 - PostgreSQL

by plog 2024. 7. 8.

PostgreSQL 기본 튜닝

포스트그레 기반 프로젝트를 마무리하며... PostgreSQL 데이터베이스의 성능을 한 단계 더 향상시킬 수 있는 쉬운 기본적인 SQL 튜닝 규칙을 정리 하고자 합니다.

 

SQL 튜닝

1. 별칭(alias) 

테이블 조인 시에 같은 이름의 컬럼이 존재할 때, alias를 붙이지 않으면 아래의 에러가 발생할 수 있습니다. alias가 없는경우 SQL 구문을 파싱할때 부하가 발생 합니다. 

select fr.feed_reply_se       
       , mp.nick_nm 
       , fr.reg_dt              
from feed.feed_reply fr
inner join master.member_profile mp 
on fr.member_se =mp.member_se

그리고 alias가 있는 경우 유지보수 측면에서 좋습니다. 

 

2. 인덱스 (Index)

인덱스를 타지 않는 경우는 대부분 좌변에 가공을 하는 경우에 발생합니다. where절에서 우변을 가공해야 합니다. 

이해를 위한 예제 쿼리 입니다. member_se 인덱스가 걸려 있습니다. 

-- 인덱스 타는 쿼리
select * from slow_master."member" m 
where member_se = 1+1

-- 인덱스 타지 않는 쿼리
select * from slow_master."member" m 
where member_se+1 = 2

 

3. EXISTS 사용

둘 다 컬럼 값의 존재 여부를 판단합니다. IN은 조건에 해당하는 ROW의 컬럼 값을 비교하지만, EXISTS는 조건에 해당하는 ROW의 존재 여부만 체크하기 때문에 성능이 더 좋습니다.

 

4. NULL 처리

NULL 값처리를 잘하면 잠재적인 오류를 막을 수 있습니다. 그래서 불필요한 시간 낭비를 줄일 수 있습니다. 매우 중요한 튜닝이라고 생각됩니다. 

 

5. explain 성능 분석

모든 쿼리 앞에 explain 붙여주면 실행계획을 확인 할 수 있습니다. 자세한 사용방법은 공식 사이트 참고해주세요 

 

14.1. Using EXPLAIN

14.1. Using EXPLAIN # 14.1.1. EXPLAIN Basics 14.1.2. EXPLAIN ANALYZE 14.1.3. Caveats PostgreSQL devises a query plan for each query it …

www.postgresql.org

'프로그래밍언어 > DB, SQL' 카테고리의 다른 글

PostgreSQL 프로시저  (0) 2024.06.16
디비버 많이 쓰는 단축키  (0) 2024.05.30
무료 DB관리툴 디비버  (0) 2024.04.30
DynamoDB의 PartiQL Select  (0) 2022.05.11
MariaDB 쿼리 계획(실행 계획)  (0) 2022.01.27

댓글