Skip to content

9.1 개요와 사용 기준

LOOKUP 테이블은 기준 코드, 장비 마스터, 임계값, 설정값처럼 비교적 작고 자주 참조되는 데이터를 저장하는 테이블입니다. 데이터는 영속 저장되지만 SQL 조회에 사용하는 전체 행은 메모리에 상주합니다. 따라서 반복적인 키 기반 조회와 갱신에 적합합니다.

LOOKUP 테이블의 특성

LOOKUP 테이블은 CREATE LOOKUP TABLE 문으로 생성하며, PRIMARY KEY가 필수입니다.

CREATE LOOKUP TABLE ch9_overview (
    sensor_id VARCHAR(64) PRIMARY KEY,
    site      VARCHAR(32),
    unit      VARCHAR(16),
    status    VARCHAR(16)
);

LOOKUP 테이블의 주요 특성은 다음과 같습니다.

항목내용
주요 용도코드 테이블, 장비 마스터, 임계값, 참조 데이터
필수 조건PRIMARY KEY 필요
저장 방식영속 저장 후 서버 기동 시 전체 행을 메모리에 적재
조회 패턴PK 조회에 최적화, 일반 조건 조회와 다른 테이블 JOIN 지원
변경 패턴INSERT, UPDATE, DELETE
부가 기능SEQUENCE 컬럼, Append 중복 키 정책

사용 기준

다음 조건에 해당하면 LOOKUP 테이블을 사용합니다.

  • 데이터 건수가 상대적으로 작고 전체 데이터가 자주 참조됩니다.
  • 전체 행과 필요한 보조 인덱스를 서버 메모리에 유지할 수 있습니다.
  • 코드, 이름, 위치, 단위, 상태 같은 기준 정보를 관리합니다.
  • TAG 또는 LOG 테이블의 원본 데이터에 설명 정보를 JOIN해야 합니다.
  • 임계값이나 설정값처럼 운영 중 변경될 수 있는 참조값을 저장합니다.
  • PRIMARY KEY로 행을 명확하게 식별할 수 있습니다.

TAG 또는 LOG 데이터에 위치와 단위 같은 설명을 붙이는 JOIN 예제는 조회와 분석에서 다룹니다.

다른 테이블을 검토할 경우

다음 요구사항에는 다른 테이블 타입을 검토합니다.

요구사항권장 테이블
대량 시계열 계측 데이터 저장TAG
append 중심 원본 이벤트 저장LOG
메모리에 전체 행을 적재하기 어려운 대규모 관계형 데이터TRANSACTION
트랜잭션과 관계형 업무 처리가 필요한 데이터TRANSACTION
서버 메모리에서만 유지할 최신 상태 캐시VOLATILE

LOOKUP 테이블은 참조 데이터에 적합하지만, 데이터가 영속 저장된다는 이유로 디스크 중심의 대용량 테이블처럼 사용해서는 안 됩니다. 원본 데이터는 LOG 또는 TAG 테이블에 저장하고, LOOKUP 테이블에는 메모리에 상주시켜 반복 조회할 기준 정보를 저장합니다. 관계형 데이터가 메모리 용량보다 커지거나 복합적인 업무 처리가 필요하면 TRANSACTION 테이블을 사용합니다.

이 절의 실습 테이블은 다음과 같이 정리합니다.

DROP TABLE ch9_overview;

설계 순서

LOOKUP 테이블을 설계할 때는 다음 순서로 결정합니다.

  1. 행을 식별할 PRIMARY KEY를 정합니다.
  2. 자연키를 사용할지, SEQUENCE 또는 AUTO_INCREMENT 기반 대리키를 사용할지 결정합니다.
  3. 자주 조회하거나 JOIN하는 컬럼에 인덱스를 추가합니다.
  4. 예상 행 크기와 행 수, 보조 인덱스를 포함한 메모리 사용량을 검증합니다.
  5. 운영 중 갱신되는 컬럼과 불변 컬럼을 구분합니다.
  6. 대량 변경 전에는 대상 범위를 확인하는 쿼리를 준비합니다.

스키마와 키 설계는 테이블 구조와 스키마PRIMARY KEY 정책에서 다룹니다.

최근 업데이트