반응형
인덱스 추가하여 성능 개선
실무에서 성능 개선할 상황은 사실 DB 쓰기 작업(생성/수정/삭제)보다 읽기 작업에서 많이 일어난다.
규모가 큰 프로젝트에서는 SELECT 할 데이터의 양이 몇백만개가 넘어가는 경우가 많기 때문이다.
우선 간단하게는 DB인덱스를 설정함으로써 성능을 개선할 수 있다. 테이블을 생성할 때 자동으로 PRIMAR 키나 UNIQUE 키가 인덱스로 설정되겠지만 인덱스 유무에 따라 성능 차이를 확인하기 위해 먼저 UNIQUE 키 인덱스를 제거하고 성능을 측정해본다.
SHOW INDEX FROM [테이블명];
ALTER TABLE [테이블명] DROP INDEX [인덱스 키 이름];
UNIQUE 키를 일반 인덱스로 추가하여 다시 성능을 측정해본다.
-- 일반 인덱스 추가
CREATE INDEX [생성할 인덱스 명] ON [테이블명](컬럼);
-- 실행계획 보기
EXPLAIN SELECT * FROM [테이블명] WHERE [인덱스 설정한 컬럼명] = 'test';
인덱스 설정에 따라 성능이 상당히 차이가 나는 것을 확인할 수 있다. 하지만 인덱스를 너무 많이 설정하면 또 다른 문제가 발생할 수 있으므로 적절히 인덱스를 설정하는 것이 좋다.
※ DB 쿼리 튜닝에 대해서는 추후에 다루기로 하겠다.
728x90
반응형
'Backend 개발 > Backend 성능 개선' 카테고리의 다른 글
[Redis 공유 캐시 이용하여 백엔드 조회 API 성능 개선하기 ③] (0) | 2025.04.07 |
---|---|
[애플리케이션 내 캐시 구현하여 백엔드 조회 API 성능 개선하기 ②] (0) | 2025.04.07 |
[클라이언트 응답과 생성 로직 분리하여 Backed API 성능 개선하기] (0) | 2025.04.03 |
[DB 커넥션 풀 설정에 따른 백엔드 API 성능 측정하기] (0) | 2025.04.02 |
[Artillery로 간단한 백엔드 API 성능 측정하기] (0) | 2025.04.01 |