콘텐츠로 이동

10. 함수 기반 인덱스#

Altibase에서 JSON 필드에 대한 인덱싱을 지원하기 위해 함수 기반 인덱스(Function-Based Index)를 사용할 수 있다.

Important

함수기반 인덱스를 사용하려면 Altibase 서버의 QUERY_REWRITE_ENABLE 프로퍼티가 1인지 확인한다.

제약사항#

  • JSON 저장 타입: Altibase 8.1의 Native JSON 타입은 현재 인덱스 생성을 지원하지 않는다. 따라서 인덱스가 필요한 필드가 있다면 컬렉션 생성시 VARCHAR를 사용해야 한다.
  • 최대 크기: 인덱싱할 VARCHAR 컬럼의 최대 크기는 32000 바이트이다.
  • 권한: 인덱스 생성은 CREATE INDEX 권한이 있는 사용자가 KADA_API_USER 계정에서 수행해야 한다.

인덱스 생성 문법#

JSON_VALUE 함수를 사용하여 특정 JSON 경로의 값을 추출하고, 이를 기반으로 인덱스를 생성한다.

CREATE INDEX 인덱스명 ON 테이블명 (
    JSON_VALUE(컬럼명, '$.json_path' RETURNING 반환타입)
);

예제#

-- 1. users 컬렉션이 VARCHAR 타입으로 생성되어 있어야 함
-- 2. email 필드에 대한 인덱스 생성 (최대 길이 100으로 가정)
CREATE INDEX idx_users_email ON users (
    JSON_VALUE(document, '$.email' RETURNING VARCHAR(100))
);