database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 17959 게시물 읽기
No. 17959
unique index 와 그냥 index 의 차이가 뭔가요?
작성자
서지수(pelsia2)
작성일
2004-03-30 11:27
조회수
10,093

보통 table 만들때 pk index 를 잡는데, 대부분은 unique index 더라고요.

그런데, 제가 create index ... 라고 해서 index를 만들면, nonuique index 로 잡혀요.

 

둘간의 차이가 뭔가요?

그리고, 하나의 테이블에 unique index 가 2개이상 있으면 안되는건가요?

이 글에 대한 댓글이 총 2건 있습니다.

 

Unique Index가 여러개 있어도 상관이 없습니다.

일반적으로 PK는 Unique Index중에 대표적인 것을

정하면 됩니다.

 

그리고 index생성시 Default는 Non Unique입니다.

 

Unique Index와 Non Unique는 실행계획 작성시

중요한 factor이 됩니다.

Unique Index > Non Unique 입니다.

김충관(마린보이)님이 2004-03-30 13:21에 작성한 댓글입니다.

1. PK(Primary Key)는 반드시 Unique해야 합니다. 만약 PK가 Unique하지 않다면, PK로 정의될 수 없습니다. PK가 Unique하지 않다면 개체 무결성(Entity Integrity)에 위배되기 때문입니다. 그래서 항상 PK Index는 Unique Index로 생성됩니다.

2. Unique Index와 Non-Unique Index의 차이점은 Index를 구성하는 컬럼 데이터 값의 중복 허용 여부에 달려 있습니다. 물론 Index를 Unique 또는 Non-Unique로 작성하는 것에 따랄 다소 Query의 성능차가 발생합니다.

3. 한 Table에 몇 개의 Unique Index를 생성해도 아무런 문제가 발생하지 않습니다. 그러나, Index는 데이터의 입력, 수정, 삭제시 추가 비용을 발생하므로 성능을 고려하여 적절하게 Index를 정의하는 것이 바람직합니다.

4. PK 정의 시에는 Table에 정의 가능한 식별자(Candidate Identifier)중 다음에 특성을 갖는 식별자를 PK로 정의합니다.

   - Unique: 다른 모든 사례를 구별할 수 있는 유일한 것

   - Not Null: Null 값이 될 수 없을 것

   - Short: 가능하면 짧을 것

   - Simple: 간단하게 구성할 것

Sunny(war1997)님이 2004-03-30 17:48에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
17962오늘 갑자기 Insert 속도가 굉장히 늦어지면...??? [1]
영이
2004-03-30
4455
17961replication(read only snapshot)에서 master가 커밋시 변경하려면... [2]
궁금이
2004-03-30
1238
17960스키마에 대한 질문 입니다. [3]
요하니
2004-03-30
2426
17959unique index 와 그냥 index 의 차이가 뭔가요? [2]
서지수
2004-03-30
10093
17958ORA-00054: 자원이 사용중이고, NOWAIT가 지정... [1]
서지수
2004-03-30
4459
17957dba를 그치지 않고 테이블 유저가 트레이스구현방법 문의 [1]
회원입니다
2004-03-30
848
17956왜 제가 지정한 index hint 키가 안 먹나요...? [2]
서지수
2004-03-30
1902
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.036초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다