본문으로 건너뛰기
제품 -> ERD가격문서블로그로그인EnglishERD 시작하기

인덱스

인덱스는 테이블의 indexing 전략을 ERD 안에 문서화합니다. 단일 컬럼 인덱스, 복합 인덱스, unique 제약을 모두 테이블 편집 패널에서 정의할 수 있습니다.


Indexes 섹션 열기

  1. 캔버스에서 테이블을 클릭해 편집 패널을 엽니다.
  2. ColumnsForeign Keys 아래의 Indexes 섹션까지 스크롤합니다.

인덱스 추가

  1. Indexes 섹션에서 + Add Index를 클릭합니다.
  2. 속성을 설정합니다.
속성설명
Name인덱스명 예: idx_users_email, idx_orders_status_date
Columns인덱스에 포함할 하나 이상의 컬럼
Unique이 인덱스가 unique 제약을 강제하는지 여부
  1. dropdown에서 컬럼을 선택합니다. 목록에는 현재 테이블에 정의된 모든 컬럼이 표시됩니다.
  2. 인덱스는 테이블과 함께 저장됩니다.

복합 인덱스

복합 인덱스는 여러 컬럼에 걸친 인덱스입니다. 여러 필드를 조합해 filter 또는 sort하는 쿼리에 유용합니다.

만드는 방법:

  1. + Add Index를 클릭합니다.
  2. 인덱스 이름을 입력합니다.
  3. dropdown에서 컬럼을 여러 개 추가합니다.
  4. 컬럼 순서는 query optimization에 영향을 주므로 가장 흔한 쿼리 패턴에 맞춰 정렬합니다.

예시

orders 테이블에서 statuscreated_at으로 자주 조회한다면:

속성
Nameidx_orders_status_created
Columnsstatus, created_at
UniqueNo

Unique 인덱스

Unique 체크박스를 켜면 같은 컬럼 조합을 가진 행이 두 개 이상 생기지 않도록 강제합니다.

테이블컬럼목적
usersemail중복 이메일 방지
team_membersteam_id, user_id중복 membership 방지
slugsresource_type, slugresource type별 slug 고유성

인덱스 편집과 삭제

Indexes 섹션에서 기존 인덱스를 클릭하면 펼쳐집니다. 이름 변경, 컬럼 추가/제거, unique flag 전환이 가능합니다. 삭제하려면 인덱스 row 옆 삭제 아이콘을 클릭합니다.


  • idx_{table}_{columns}처럼 일관된 naming convention을 쓰면 migration script에서 찾기 쉽습니다.
  • 복합 인덱스에서는 선택도가 높은 컬럼을 앞에 두면 database optimizer가 효율적으로 선택하기 쉽습니다.
  • 비즈니스 규칙은 애플리케이션뿐 아니라 unique index로 DB 레벨에서도 강제하세요.
  • SQL export 시 인덱스는 생성되는 DDL에 포함됩니다.
  • migration 파일에 이미 있더라도 ERD에 인덱스를 문서화하면 팀이 전체 구조를 한눈에 볼 수 있습니다.