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 4123 게시물 읽기
No. 4123
Re: 다시 한번만 봐주세요..
작성자
전병혁(chunbh)
작성일
2002-04-03 11:20
조회수
1,389

sequence 번호를 읽는 다고 전체 글의 개수를 알 수 있는지요?

 

또다른 서버에서 테스트 했지만 select count(no) from test 수행하는 속도가 확실이 느리고 리스트 출력하는 것도 느립니다.

 

재익님께서는 어떻게 사용을 하시는지요?

 

속도를 높이기 위해 전체카운터를 다른 테이블에 저장하는 방법도 있겠지만 이 방법은 나중에 생각하려고 합니다.

 

설치에 문제가 있는지 아님 제가 플밍을 잘못했는지요?

 

카운터구하는것과 리스트 출력하는 쿼리(limit x offset y)에 문제가 있는지 확인 부탁드립니다.

 

그리고 재익님께서 사용하시는 방법은 어떤지요..

 

ㅡ.ㅡ

 

좋은 하루 되시기 바랍니다.

 

-- 전병혁 님이 쓰신 글:

>> 현재 시스템 사양입니다.

>>

>> OS : x86 솔라리스 8

>> cpu : 펜3 667Mhz

>> mem : 512mb

>> 하드는 일반 ide하드 입니다.

>>

>> apache 1.3.24, php-4.1.2, pgsql 7.2입니다.

>>

>> 이 시스템에는 오라클과 mysql도 설치되어 있습니다.

>>

>> 게시판을 만들었는데 select count(*) from table_name 이거 하는데 무려 12초나 걸립니다.

>>

>> 데이터는 15만건 들어가 있습니다.

>>

>> 답변형 게시판의 db구조는 아래와 같습니다.

>>

>> CREATE SEQUENCE "test_no_seq" start 1 increment 1 maxvalue 9223372036854775807 minvalue 1 cache 1;

>>

>> CREATE TABLE "test" (

>> "no" integer DEFAULT nextval('"test_no_seq"'::text) NOT NULL,

>> "idx" integer,

>> "thread" varchar(255),

>> "name" character varying(20),

>> "email" character varying(40),

>> "subject" character varying(100),

>> "content" text,

>> "passwd" character varying(20),

>> "url" character varying(100),

>> "host" character varying(15),

>> "html" character(1),

>> "reply_mail" character(1),

>> "refer" integer,

>> "down" integer,

>> "filename" character varying(100),

>> "filesize" integer,

>> "wdate" integer,

>> Constraint "test_pkey" Primary Key ("no")

>> );

>>

>> CREATE INDEX pos_test_key ON test USING btree (idx, thread);

>>

>> SELECT setval ('"test_no_seq"', 1, false);

>>

>> 위와 같이 만들었습니다.

>>

>> explain의 결과 입니다.

>> postgres=# explain select count(*) from test;

>> NOTICE: QUERY PLAN:

>>

>> Aggregate (cost=6422.15..6422.15 rows=1 width=0)

>> -> Seq Scan on test (cost=0.00..6047.12 rows=150012 width=0)

>>

>> EXPLAIN

>> postgres=# explain select count(no) from test;

>> NOTICE: QUERY PLAN:

>>

>> Aggregate (cost=6422.15..6422.15 rows=1 width=4)

>> -> Seq Scan on test (cost=0.00..6047.12 rows=150012 width=4)

>>

>> EXPLAIN

>> postgres=# explain select count(idx) from test;

>> NOTICE: QUERY PLAN:

>>

>> Aggregate (cost=6422.15..6422.15 rows=1 width=4)

>> -> Seq Scan on test (cost=0.00..6047.12 rows=150012 width=4)

>>

>> 문제는 다른 db의 경우 count(*) 이렇게 하면 데이터가 많아도 금방 되던데

>>

>> 왜 이렇게 느린리 모르겠네요..

>>

>> 아래는 mysql의 경우 입니다.

>>

>> mysql> select count(*) from test;

>> +----------+

>> | count(*) |

>> +----------+

>> | 150004 |

>> +----------+

>> 1 row in set (0.00 sec)

>>

>> mysql> select count(no) from test;

>> +-----------+

>> | count(no) |

>> +-----------+

>> | 150004 |

>> +-----------+

>> 1 row in set (0.00 sec)

>>

>> php에서 사용한 전체 글 구하는 소스입니다.

>>

>> $query = "select count(no) from $table" . $sql;

>> $result = pg_exec($conn,$query);

>> if($result){

>> // 게시물 총개수를 $TotalCount에 저장합니다.

>> $TotalCount = pg_fetch_row($result);

>> $TotalCount = $TotalCount[0];

>> }

>> // 게시물이 없으면 0

>> else $TotalCount = 0;

>> pg_freeresult($result);

>>

>> 어떻게 하면 전체 글 구하는 속도를 빠르게 할 수 있나요

[Top]
No.
제목
작성자
작성일
조회
4121RH7.2 + postgresql 7.2 [1]
배재한
2002-04-03
1394
4119한머신에 두개의 포스트그레서를 뛰우는게 가능한가요
우즈리
2002-04-02
1148
4122┕>Re: 한머신에 두개의 포스트그레서를 뛰우는게 가능한가요
정재익
2002-04-03 10:53:15
1369
4118Performance 부분...급함 [1]
홍길동
2002-04-02
1180
4117게시판에서의 전체 글개수 구하기가... [1]
전병혁
2002-04-02
1710
4123┕>Re: 다시 한번만 봐주세요..
전병혁
2002-04-03 11:20:41
1389
4115permission deny [6]
노인철
2002-03-30
1682
4112속도... [3]
사이버
2002-03-28
1360
4113┕>Re: 속도...(임시 해결인가??) [1]
사이버
2002-03-28 14:39:14
1193
4114┕>Re: 속도... [1]
김순석
2002-03-28 16:31:37
1344
4110백업시 pg_dump를 Cron에서 가동하면 않되는 이유 좀..
momzi
2002-03-27
789
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다