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

인덱스

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


Indexes 섹션 열기​

  1. 캔버스에서 테이블을 클릭해 편집 패널을 엽니다.
  2. Columns와 Foreign 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 테이블에서 status와 created_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에 인덱스를 문서화하면 팀이 전체 구조를 한눈에 볼 수 있습니다.