본문 바로가기

CS 잡지식

기승전"DB" - 서버의 성능은 [DB]에 의해 결정된다

서버의 개발에 있어서, 대부분의 에러와 성능 ISSUE는 DB에서 만들어 진다. 

특히, 서버를 개발할 때 DB를 최적화하는 과정(DB 튜닝)을 거치지 않으면, 엄~~~청난 성능 차이를 보이게 되므로

필수이다. 

DB 최적화 중에서도, [저장],[삭제],[수정] 부분에서는 최적화 과정의 유무에 상관없이 성능에 별 차이가 존재하지 않는다.

그러나 문제는 바로 [조회] 기능이다. 

1] 페이징 과정에서 생기는 엄청난 DB 연산

2] 컬렉션 조회 최적화 문제

3] 지연 로딩,즉시 로딩에서 생기는 N + 1 문제

등등, [조회]에서는 DB가 JOIN 연산을 주로 하기에 성능 ISSUE가 많이 생긴다. 

( API 사용자들이 주로 [조회]를 많이 하기 때문에 생기기 때문에 성능 ISSUE가 생기는 부분도 크다 )

 

 [Spring, JPA 사용]을 하면서 복잡한 API를 개발할 때 생기는 DB 성능 ISSUE에 대해서 반드시 성능 최적화를 해야 한다.

( jpa 활용 2 자료 참조 )