DB 테이블을 새로 만드는 와중에 Index 설정에 대해서 궁금한게 있어 질문 드립니다.
특정한 필드에 대하여 ID:예, ID시드:1, ID증가값:1 로 잡았습니다.
제가 궁금한것은 이렇게 Field에서 설정할 경우 Index설정에서
해당 필드를 Unique Index를 잡아줘야 되는지 안 잡아줘도
이미 설정되어 있는 것이나 다름이 없는 건지 그게 궁금합니다.
MS-SQL 고수님들의 답변 기다리겠습니다.
만약 set identity_insert on 등의 옵션 변경을 통해 강제로 ID값을 넣을 경우가 있다면 unique 제약조건을 추가(자동으로 unique index가 생성됨) 하겠지만, 이런 예외적인 경우는 없다는 가정하에 말씀 드리겠습니다.
해당 컬럼의 유일성을 보장받기 위한 목적이라면 unique index를 설정할 필요가 없습니다.
번호가 자동으로 증가하기 때문에 당연히 유일한 값만 들어갑니다.
만약 이 컬럼이 조회 조건에 빈번하게 사용되거나 다른 테이블과 조인이 된다면 속도 향상을 위해서 index를 달아야 합니다.
즉, 유일성을 보장하기 위해서는 unique index가 필요없지만 조회시 속도 향상을 위해서는 index가 필요하다는 거지요.