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 6437 게시물 읽기
No. 6437
쿼리에 이상이 있는지 한번살펴봐주세요
작성자
초보
작성일
2005-11-22 08:22
조회수
2,170

안녕하세요

select uid,fid,id,name,email,filename from %s order by fid desc limit 1 OFFSET 12

위의 형식의 쿼리에 이상이 있는지 한번살펴봐주세요

잘되는데여

속도에서 디비의 레코드가 50개 있을때와

500개 있을때의 속도차가

눈에띌정도입니다

이정도에서 속도차가 느낄정도면

레코드가 몇천개 내지는 몇만개 정도되면

아주 느려질까봐 걱정입니다

위의 쿼리문이 레코드갯수에따라서 속도가 차이가나는것이 정상인가여

쿼리문을 조정해서 속도를 조정할수도 있는지...

조언부탁드립니다

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

일단 fid 칼럼에 대한 인덱스가 있으면,

order by fid desc limit 1

 

이놈은 확실하게 인덱스를 사용하거든요.

그래서, 수백만개가 있어도 속도에 문제가 없을터인데,

 

문제는 offset 12 인지라, 이건 어떻게 될지 모르겠습니다.

일단 8.0에서 살펴보니, 인덱스를 사용하기는 하네요.

 

 

별 문제가 없어보입니다.

문제는 where 조건절이 문제인데, 만일 여기서 사용되는 조건이 fid 관련 인덱스를 쓰지 않고, 다른 인덱스를 사용하게 되고, 그 결과가 수천개 가까이 나오게 된다면, 그 자료를 가지고, sort를 하고 거기 12번째 자료를 가져오니까, 비용이 커질겝니다.

 

explain 결과를 살펴보고, 이 쿼리를 쓸지 안쓸지를 결정하셔야할 듯싶습니다.

김상기(ioseph)님이 2005-11-22 09:23에 작성한 댓글입니다.
이 댓글은 2005-11-22 09:38에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
6443postgresql 을 80포트로도 가동시킬 수 있나요?
김지호
2005-11-26
2050
6441No such file 에러..? [2]
나그네
2005-11-24
2142
6440PostgresSQL 백업 받고 OS 재설치 하실 분 찾습니다.
정인기
2005-11-23
2198
6437쿼리에 이상이 있는지 한번살펴봐주세요 [1]
초보
2005-11-22
2170
6436update 문으로 특정필드에 있는값에다가 추가해서 값을 넣고자 할때는 [1]
초보
2005-11-22
2242
6435could not receive data from client: Connection reset by peer [1]
김동훈
2005-11-21
4686
6434주소필드의 공백 2글자이상을 공백1글자로 치환하려면... [2]
김창욱
2005-11-21
2635
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다