002_add_vendor_influencer_mapping_indexes.sql 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. -- DDL 002: 벤더사-인플루언서 매핑 테이블 인덱스 추가
  2. -- 생성일: 2025-07-22
  3. -- 목적: 성능 최적화를 위한 인덱스 및 제약 조건 추가
  4. -- 1. 기본 검색용 인덱스
  5. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  6. ADD INDEX `idx_vendor_seq` (`VENDOR_SEQ`);
  7. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  8. ADD INDEX `idx_influencer_seq` (`INFLUENCER_SEQ`);
  9. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  10. ADD INDEX `idx_status` (`STATUS`);
  11. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  12. ADD INDEX `idx_request_type` (`REQUEST_TYPE`);
  13. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  14. ADD INDEX `idx_is_active` (`IS_ACTIVE`);
  15. -- 2. 날짜 관련 인덱스
  16. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  17. ADD INDEX `idx_request_date` (`REQUEST_DATE`);
  18. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  19. ADD INDEX `idx_expired_date` (`EXPIRED_DATE`);
  20. -- 3. 복합 인덱스 (성능 최적화)
  21. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  22. ADD INDEX `idx_vendor_status_active` (`VENDOR_SEQ`, `STATUS`, `IS_ACTIVE`);
  23. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  24. ADD INDEX `idx_influencer_status_active` (`INFLUENCER_SEQ`, `STATUS`, `IS_ACTIVE`);
  25. -- 4. 중복 방지를 위한 유니크 인덱스
  26. -- 동일한 벤더사-인플루언서 조합에서 동일한 상태의 중복 방지
  27. -- 다른 상태로는 여러 레코드 허용 (예: 이전 거절 후 재요청)
  28. ALTER TABLE `VENDOR_INFLUENCER_MAPPING`
  29. ADD UNIQUE INDEX `unique_vendor_influencer_status` (`VENDOR_SEQ`, `INFLUENCER_SEQ`, `STATUS`);