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
운영게시판
최근게시물
DBMS Q&A 346 게시물 읽기
No. 346
Re: 테이블에서 인덱스를 주는 규칙이 있나요?
작성자
김건수
작성일
2002-02-26 16:37
조회수
5,618

index는 말그대로 index입니다.

 

두꺼운책에서 어떤 내용을 찾을에 맨앞에 있는 index를 참고해야

 

쉽게 빨리 찾을수 있죠.

 

그런나 전체 용량이 1,2 page밖에 안되는책을 index를 찾는건

 

더 느리겠죠? 차라히 full scan이 빠를겁니다.

 

DB도 맞찬가지입니다.

 

보통 1000건 정도 기준으로 그 이상껀수는 index로 찾는것이 빠릅니다.

 

그리고 남자/여자 구분되는 컬럼에 index를 만들면 비효율적이겠죠?

 

Yes/No 도 맞찬가지고요.. 중복이 많은 컬럼은 index를 피하시는게 좋습니다.

 

where 조건에 걸리는 컬럼, order by에 사용되는 컬럼에 index 만드시는게

 

좋습니다.

 

index도 단일 index, composite index(여러 컬럼 묶어서) 가 있고

 

select .. from .. where a=1 and b=1 and c=1

 

이라면 index a, index b, index c 만드는것 보단

 

index(a,b,c)가 더 효율적이죠.

 

그렇다고 table에 index를 너무 많이 만들면 insert/update/delete 하는데

 

오버헤드가 생기니 속도가 떨어집니다.

 

보통 한 table 당 6개정도의 index가 알맞습니다.

 

제가 답변한 기준DB는 informix에 맞추어 답변을 했지만

 

타 DBMS도 별차이 없을거라고 생각됩니다.

 

참고하시길 바랍니다.

 

 

-- 김훈 님이 쓰신 글:

>> 안녕하세요.. 다름이 아니라..

>> 테이블을 만들때.. 특별히 인덱스를 만들 규칙 같은게 있나요?

>> 예를 들면 프라이머리 키로 만든 컬럼은 자동으로 unique index 가

>> 만들어 진다고 하는데..

>>

>> 그 외에.. 어떤 경우에 인덱스를 만들어야 하는지요?

>> where 절에서 조건으로 많이 사용되는 컬럼을 만들어야 하는지..

>>

>> 인덱스를 만드는 거에 대한 어떤 배경 지식 같은게 있음 알려 주세요..

>> 물론 인덱스를 만든 다는게 여러 상황에 따라서 다르겠지만요..

>>

>> 그럼 답변 기다리겠습니다.

[Top]
No.
제목
작성자
작성일
조회
351엑세스디비를 mysql로..
^^;
2002-02-27
5053
350열의 개수가 520개 정도 되는 데이타는 어떤 DB프로그램을 써야 하나요? [2]
서상원
2002-02-27
5374
347SQL 문법중에 parameter marker에 대해... [1]
영허니
2002-02-26
4899
345테이블에서 인덱스를 주는 규칙이 있나요?
김훈
2002-02-26
5135
346┕>Re: 테이블에서 인덱스를 주는 규칙이 있나요?
김건수
2002-02-26 16:37:21
5618
344gdbm설치시 문제? [1]
김재호
2002-02-22
5139
343SQL 서버에 관한 질문. [2]
이명신
2002-02-22
5108
342jinitiator이 뭐죠?
영이
2002-02-21
5172
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2022 DSN, All rights reserved.
작업시간: 0.025초, 이곳 서비스는
	PostgreSQL v14.2로 자료를 관리합니다