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
운영게시판
최근게시물
PostgreSQL Q&A 4063 게시물 읽기
No. 4063
Re: 리스팅을 위한 인덱싱으로는 btree를 씁니다.
작성자
김상기
작성일
2002-03-04 22:07
조회수
1,366

Btree 방식의 인덱싱에서 어디를 시작으로 할 때, 늦은가, 빠른가에

관계되겠지요.

 

일반적으로 특별이 따로 지정하지 않으면, PostgreSQL놈은 btree로 인뎅싱 파일을 만드니.

 

PostgreSQL 놈이나 다른 RDBMS 놈을 깊게 공부해 보고 싶으시면,

Btree 놈의 자료 구조 정도는 공부해 두시는게 좋을 것같습니다.

인덱싱에서는 꼭 안 빠지고 나오는 놈이니까요.

 

한 백만건 정도의 자료에 대한 인덱싱이라면,

당연히 1번부터 출발 하는 것보다,

9천9백9십번 자료부터 출발하는 것이 당연히 늦겠지요.

이것은 Btree의 첫번째 key값을 찾는데 걸리는 시간일겝니다.

 

이 부분 때문에, oracle에서는 오름차순으로 인덱싱파일을 만들것인지, 내림차순으로 인덱싱파일을 만들것인지를 정할 수 있도록 하고 있습니다.

개인적인 생각으로 바람직한 방법인것 같고, 조만간에 PostgreSQL 놈에도 적용이 되리라고 봅니다. (벌써 적용되었는지도 모르겠지요. 요즘 개발버전을 안살펴봐서...)

 

SQL 표준 규약 안에는 양의 정수형 같은 것은 없습니다.

즉, integer 형인데, 이 필드에 대한 제약조건(Constraint)으로 그 값의 제약조건을 지정합니다.

자세한 것은 create table 명령에 관계된 PostgreSQL 매뉴얼을 참조하십시오.

 

-- 소타 님이 쓰신 글:

>> 안녕하세요 ^^;;

>> 간만에 질문 올립니다 :)

>>

>> 아.. php스쿨을 돌아다니다 보면요. 정렬시 속도가 어떤쪽이 빠른가에 대해 항상 얘기가 나오곤 합니다. 주로 mysql을 이용할때의 얘기인데. ORDER BY column 은 대부분 ORDER BY column DESC 보다 훨씬 빠르다! 라는게 정석처럼 펴져 있더군요. 하지만 저는 아직까지 아주 특수한 경우 말고는 이런 형상을 직접 경험한적은 없습니다. 물론 테스트를 위해 데이터를 무조건 집어넣고는 해봤을때는 맞았지만요.

>>

>> 그런데, 이룰이 Postgres에도 적용되는지 궁금합니다. 사실 지금 만들고 있는거에 위의 속도문제 해결책(?)을 적용시켰었는데요. sequence를 최고값을 시작값, 증가값을 -1 로 해놓고 사용하게 했습니다. 제일 큰수가 먼저 들어가고 점점 작은숫자가 들어가겠죠.

>> 이렇게 하면 ORDER BY column 만 써도 되는거잖아요?

>> 이렇게 했을때와 그냥 1부터 시작해서 증가값이 +1 인 sequence의 정수값이 들어가는 컬럼의 정렬은 무조건 DESC보다 빠른건가요?

>>

>> 답변 부탁드립니다 ^^;;;

>> 아참 이건 간단한 건데 data type에서 mysql에는 int 나 smallint 뒤에 음수값이 없는 unsigned 를 써줌으로써 표현한계를 조절할수 있었는데요. Postgres에서는 어떤걸로 이것을 대체하는지도 궁금합니다 ^^;;

>> 찾아볼때마다 못찾은거 같아서요. 혹시 없는건지~

>>

>> 그럼 좋은 하루 되세요 :)

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

감사합니다 :)

소타님이 2002-03-05 01:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
40682개의 DB를 만들었는데.. [1]
주피터
2002-03-09
1059
4064explain 쿼리에 대해서 질문입니다 =.=;
소타
2002-03-05
1269
4061Unable to connect to PostgreSQL server... [3]
향이
2002-03-04
1411
4060ORDER BY column (DESC) 속도차이 질문입니다.
소타
2002-03-04
1517
4063┕>Re: 리스팅을 위한 인덱싱으로는 btree를 씁니다. [1]
김상기
2002-03-04 22:07:03
1366
4058postgresql [1]
김상규
2002-03-02
1119
4057[질문] view 와 table간의 권한 관계 [1]
장원준
2002-03-02
1106
4056x86 솔라리스에 pqsql 컴파일시 에러입니다. [2]
전병혁
2002-02-28
1180
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다