Backend/DB 4

커버링 인덱스 적용

시작하며 MMS 발송 모듈에서 히스토리 테이블의 Select 시 성능 저하로 커버링 인덱스를 적용하였다. 현재 상황 테이블은 4개의 컬럼으로 구성되어있고, 4개의 컬럼이 복합 PK로 구성 및 파티션이 적용 되어 있다. 발송 배치시 Select 쿼리 성능 저하로 TPS가 맞춰지지 않았다. 원인 복합 PK를 사용시 단점으로 Where 조건절이 복합키 컬럼이 모두 만족 되지 않는다면 인덱스가 적용이 되지않는다. 현재의 Where 조건절에는 하나의 컬럼만이 사용되었다. History 테이블로서 데이터가 지속적재 되기때문에 시간 경과에 따른 누적 성능 저하가 발생한다. 해결방안 Where 조건절에 해당하는 컬럼을 추가 적용하여, 인덱스가 적용되도록 추가하여, 기존 성능 2초에서 0.01초로 감소시켰다. 링크 : ..

Backend/DB 2024.03.21

데이터베이스(DB) index

시작하며 Index 정리 및 예시를 통해 학습한 내용을 정리하였다. 인덱스란? - 인덱스는 데이터베이스 테이블에 대한 검색 성능 속도를 향상시켜주는 자료 구조이다. 인덱스는 특정 컬럼(여러컬럼의 조합)에 대한 정렬된 값의 집합으로, 데이터베이스 엔진이 데이터를 빠르게 찾을수 있도록 도와준다. Ex) 책의 목차라고 생각하면 이해가 쉽다. 책의 목차에서는 내가 찾고자 하는 페이지가 어디 있는지 빠르게 찾을 수 있도록 해준다. 인덱스는 데이터베이스 테이블의 특정 컬럼(여러 컬럼)의 값을 사전 순서 또는 정렬 순서로 저장하여 데이터 접근과 검색을 최적화한다. 일반적으로 B-트리(B-tree)나 해시 테이블 등의 자료구조를 사용하여 인덱스를 관리한다. 실생활에서의 인덱스 사용예제) 인덱스의 자료구조 해시 테이블..

Backend/DB 2023.07.30