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 6233 게시물 읽기
No. 6233
쿼리 질문입니다.
작성자
김동훈
작성일
2005-07-28 09:30
조회수
2,087

데이타가 1000만건 이상의 테이블에서 스코어별 상위 1000 명을 뽑고자 합니다.

select aaa from kk order by aaa desc limit 1000;

 

데이타 정렬시 1000만건을 정렬하다보니 속도가 너무나 느린 현상 입니다.

어떤식으로 하면 좋을지 조언 부탁 드립니다.

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

질의 계획을 검토해 보십시오.

 

EXPLAIN ANALYZE select aaa from kk order by aaa desc limit 1000;

 

이렇게 하면 해당 질의문을 어떻게 처리하고 그 비용은 얼마인지 나올것입니다. 아마도 인덱스가 적절하게 만들어져있지 않거나 설정이 잘못 되었을 가능성 또는 시스템의 능력보다 많은 자료량이 문제 일 수 있겠네요.

박성철(gyumee)님이 2005-07-28 09:48에 작성한 댓글입니다.

질의 계획은 이미 검토를 해보았습니다.

data sort 시에 cost가 많이 발생하고 있습니다.

order by aaa desc  방법을 제외 하고  스코어별 상위 1000 명을 뽑는 방법이 없을까요?

김동훈(waterskin)님이 2005-07-28 10:01에 작성한 댓글입니다.

aaa가 index를 타는데도 그렇게 오래걸릴수는 없어보입니다

제가 지금운용하고있는 태이블이 4000만건이 넘는데

이와비슷한쿼리로 바로나오거든요

 

 

가우님이 2005-07-28 11:36에 작성한 댓글입니다. Edit

질의 계획을 검토해 보라고 말씀 드리면서 구체적인 내용을 알려주시기를 바랬는데 결과만 말씀하시네요.

결론만 가지고는 도움을 드릴 수 없어 보이네요.

아마도 인덱스가 없거나 있어도 사용하고 있지 않는 것 같습니다.

analyze나 vacuum analyze는 했겠죠?

 

 

박성철(gyumee)님이 2005-07-28 21:55에 작성한 댓글입니다.

이 경우라면, 인덱스를 쓰지 않는다면, 어느 DB나 느릴 수 밖에 없을 것 같네요.

 

그 정렬 되는 칼럼 자료를 기준으로 하는 인덱스가 하나 있어야겠는데,

문제는 select aaa from kk order by aaa desc limit 1000 여기서 where 절이 있다면, 인덱스를 어떻게 만들것인가도 고민을 해야할 것같네요. 인덱스만으로 해결못한다면, 통계용 테이블을 따로 만들어야할 것도 같네요.

 

질문이 너무 개괄적이여서 개괄적인 답변밖에는 못드리겠습니다. 

 

윗 질문만 놓고 본다면, 단순히 aaa 칼럼에 인덱스를 하나 만들어보십시오. 그럼 윗 쿼리라면, 분명히 사용할 터이이고, 깔끔하게 움직일겝니다.

김상기(ioseph)님이 2005-07-29 14:24에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
6236(급질문)DB자료 복구문제 [4]
호랑이
2005-07-28
2518
6235PSQL 메모리 디비 사용하기 정보좀.. [1]
오지수
2005-07-28
2188
6234원격 접속... [2]
한상호
2005-07-28
2767
6233쿼리 질문입니다. [5]
김동훈
2005-07-28
2087
6230dblink에 대한 질문 [1]
해월리
2005-07-25
2069
6228동적인 배열 사용..존재하는지 궁금합니다. [1]
초보ds
2005-07-23
2280
6227쿼리를 못찾겠습니다.. [2]
초보
2005-07-22
2114
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.034초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다