임베디드 인덱스
임베디드 인덱스(Embedded Index)는 미리 계산된 포인터나 특정 데이터 요소에 대한 참조를 데이터 자체와 직접 또는 긴밀하게 결합된 국소적 구조 내에 저장하는 데이터 구조입니다. 별도의 데이터베이스 구조에 존재하는 전통적인 중앙 집중식 인덱스와 달리, 임베디드 인덱스는 인덱싱 정보를 설명하는 데이터와 가깝게 유지합니다. 이러한 근접성은 읽기 작업 중 지연 시간을 최소화하는 핵심 요소입니다.
실시간 검색 엔진, 대규모 AI 추론 파이프라인 또는 복잡한 트랜잭션 데이터베이스와 같은 높은 처리량, 낮은 지연 시간 애플리케이션에서 별도의 인덱스 구조를 탐색하는 데 소요되는 시간은 상당한 성능 병목 현상이 될 수 있습니다. 인덱스를 임베드하면 I/O 작업과 네트워크 홉이 획기적으로 줄어들어 쿼리 응답 시간이 빨라지고 리소스 활용 효율성이 높아집니다.
데이터가 기록될 때, 시스템은 기본 데이터 레코드와 관련 임베디드 인덱스 구조를 동시에 업데이트합니다. 이 구조에는 빠른 조회를 위해 필요한 포인터, 해시 값 또는 사전 계산된 메타데이터가 포함될 수 있습니다. 쿼리가 도착하면, 시스템은 별도의 인덱스 조회 단계를 건너뛰고 단일의 국소적 작업으로 데이터 블록과 해당 인덱스 정보를 액세스합니다.
임베디드 인덱싱은 여러 최신 아키텍처에서 널리 사용됩니다.
임베디드 인덱스를 사용함으로써 얻을 수 있는 주요 이점은 다음과 같습니다.
임베디드 인덱스는 강력하지만 쓰기 작업에 복잡성을 추가합니다. 업데이트 또는 삭제 시 기본 데이터와 임베디드 인덱스 간의 일관성을 유지하려면 강력한 트랜잭션 관리가 필요합니다. 게다가, 인덱스 크기가 데이터 레코드의 전체 저장 공간을 증가시킬 수 있습니다.
관련 개념에는 분산 인덱싱(인덱스가 여러 노드에 분산되는 방식)과 인메모리 데이터 그리드(속도를 위해 인덱스 구조를 포함한 모든 필요한 데이터를 RAM에 유지하는 데 중점을 둠)가 있습니다.