신입 백엔드 개발자에게 요구하는 DB 성능 개선이란?

Alex·2024년 9월 24일
0

성능 개선

목록 보기
7/9

개인 프로젝트에서 DB 성능이 문제가 되는 일은 그렇게 많지 않다.

다만, 현업에서는 이런 이슈가 있다고 한다.

세가지 원인이 있는데

1.동시 사용자 수의 증가

2.데이터양이 증가

3.비효율적인 SQL문을 작성했기 때문

-->데이터가 늦게 로딩, 서비스 사용자 입장에서는 답답...그래서 이탈해버림
회사의 손실로 이어짐.

DB 성능 개선은 DBA의 일이 아닌가?
백엔드 개발자가 DB관련 업무를 할 때가 있다. DBA와 협업해서 하기도 함.
어지간한 것들은 백엔드 개발자가 DB 성능 개선을 알아서 하는 경우가 많음

DB성능 개선할 떄 SQL 튜닝을 가장 먼저 해야 하는 이유
-캐시 서버 활용
-레플리케이션(마스터, 슬레이브)
-샤딩
-스케일업

이런 선택지는 추가적인 시스템을 구축해야 한다. 금전적, 시간적인 비용이 추가 발생한다. 관리함에 있어서도 비용(시간적인것)이 늘어난다.

SQL튜닝은 시스템 개선없이 성능 개선이 가능하다는 게 장점이다.
근본적인 문제 해결방법이 SQL 튜닝일 가능성이 높다. SQL이 비효율적으로 짜여졌을 수 있기 때문이다.

성능 개선을 위한 MySQL 구조/ SQL 튜닝의 핵심

MySQL 서버가 있고, MySQL 엔진이 있고 스토리지 엔진도 있다.

클라이언트가 SQL 요청을 보낸다. MySQL에서 옵티마이저가 SQL문을 분석한다. 어떤 데이터를 요구하네? 데이터를 어떻게 가져와야 빠르고, 효율적으로 가져올수 있을지를 옵티마이저가 계획을 세운다.

다만, 이 계획은 완전하지 않다. 그래서 옵티마이저가 잘 알아들을 수 있도록 SQL을 짜야 한다. 이걸 기반으로 스토리지 엔진에서 데이터를 가져온다.

DB 성능의 문제는 스토리지 엔진에서 데이터를 가져올 때 주로 발생한다.
데이터를 찾기 어려워서, 데이터가 너무 많아서.. 이런 이유로.

MySQL 엔진에서 정렬과 필터링을 마지막 처리를 해서 SQL 결과를 클라이언트에게 응답한다.

1.데이터를 찾기 쉽게 바꾸기
2.스토리지 엔진에서 가져오는 데이터의 양을 줄이기

profile
답을 찾기 위해서 노력하는 사람

0개의 댓글