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 3769 게시물 읽기
No. 3769
Re: Re: Re: Re: 어떻게 변경을 해야 하나요?
작성자
전병혁(chunbh)
작성일
2001-12-22 18:41
조회수
1,741

답변 감사드립니다.

 

우선 게시판이 돌아가게는 만들었습니다.

 

똑같은 알고리즘으로 만들었는데 확실히 mysql이 빠르던군요....

 

현재 게시물 3만건을 넣었거든요...

 

페이징 속도가 뒤로가면 늦어져요

 

어떻게 해결할 수 있는 방법이 없을까요?

 

로딩속도는 첫페이지는 0.00908정도 나오고 마지막은 1.25589정도 나오거든요

 

현재 이 결과로 속도는 제대로 나오고 있는건가요

 

실행 쿼리는 아래와 같습니다.

첫페이지 : select no,num,depth,idx,name,email,subject,refer,down,filename,filesize,date from test order by idx DESC limit 10 offset 0

 

마지막페이지

select no,num,depth,idx,name,email,subject,refer,down,filename,filesize,date from test order by idx DESC limit 2 offset 30000

 

 

디비 구조는 아래와 같습니다.

 

CREATE TABLE "test" (

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

"num" int8,

"depth" int8,

"idx" int8,

"name" varchar(20),

"email" varchar(40),

"subject" varchar(100),

"content" text,

"passwd" varchar(20),

"url" varchar(100),

"host" varchar(15),

"html" char(1),

"reply_mail" char(1),

"refer" int4,

"down" int4,

"filename" varchar(100),

"filesize" int8,

"date" int8,

CONSTRAINT "test_pkey" PRIMARY KEY ("no")

);

CREATE INDEX "idx_test_key" ON "test" ("idx");

 

답변 부탁드립니다.

 

마지막으로 크리스마스 잘 보내세요

 

 

-- 소똥 님이 쓰신 글:

>> UPDATE,INSERT등은 따로 LOCK을 걸지않아도 내부적으로 자동 row exclusive lock인가가 걸리는데 ...

>>

>> 하나의 트랜잭션안에서만 의미가 있음니다.

>>

>> mysql처럼 트랜젝션 개념이 없는DB( 맞나? ) 에선 다짜고짜 통으로 lock을 걸어버리는데 이건 db가 실제 처리하지 않는 시간도 lock이 걸려 있으므로 다른세션에선 그기간동안 접근수 없죠.

>>

>> 아래의 경우처럼 한문장만 할경우라면 lock이 아무 의미가 없고 여러개의 문을 트랜잭션 처리할경우만 필요한 옵션으로 lock을 시키시면 될거라봄니다.

>>

>> mysql의 unlock과 같은 기능은 필요가 없음니다.

>> 트랜잭션이 끝나면 자동으로 lock이 해제 될태니까요.

>>

>> 근데 죄송하지만 정확한 답변인지는 저도잘...

>>

>>

>> -- 전병혁 님이 쓰신 글:

>> >> 답변 감사합니다.

>> >> mysql처럼 lock를 걸면 어떻게 코딩을 해야 하나요?

>> >> 메뉴얼을 보아도 잘 모르겠네요

>> >>

>> >> postgres=# \h lock

>> >> Command: LOCK

>> >> Description: explicitly lock a table

>> >> Syntax:

>> >> LOCK [ TABLE ] name [, ...]

>> >> LOCK [ TABLE ] name [, ...] IN lockmode MODE

>> >>

>> >> where lockmode is one of:

>> >>

>> >> ACCESS SHARE | ROW SHARE | ROW EXCLUSIVE | SHARE UPDATE EXCLUSIVE |

>> >> SHARE | SHARE ROW EXCLUSIVE | EXCLUSIVE | ACCESS EXCLUSIVE

>> >>

>> >> 이게 무슨소린지?

>> >> 다시 한번 답변부탁드립니다.

>> >>

>> >>

>> >> -- 소똥 님이 쓰신 글:

>> >> >> SQL문 하나 하나는 그자체로 트랜젝션이 되므로 아래처럼 begin,rollback등를 쓰실필요는 없고 안되는 증상을 잘모르겠지만 mysql처럼 lock을 걸면 안될까요?

>> >> >>

>> >> >> -- 전병혁 님이 쓰신 글:

>> >> >> >> 이곳을 통해 많은 것을 배우고 있는 사람입니다.

>> >> >> >>

>> >> >> >> mysql을 사용하다가 pgsql을 설치해서 짐 공부를 하고 있습니다.

>> >> >> >>

>> >> >> >> 게시판을 만들고 있는데 mysql에서 트랜잭션(?)을 어떻게 pgsql로 변경을

>> >> >> >>

>> >> >> >> 해야 하는지요...

>> >> >> >>

>> >> >> >> 게시판 알고리즘은 업데이트형 게시판입니다.

>> >> >> >>

>> >> >> >> idx라는 필드가 바로 업데이트되는 필드입니다.

>> >> >> >>

>> >> >> >> 물론 데이터가 많아지면 문제는 됩니다.

>> >> >> >>

>> >> >> >> mysql로 된 소스 올립니다(답변글을 작성했을때 입니다.).

>> >> >> >>

>> >> >> >> mysql_query("lock table $table write",$conn);

>> >> >> >> $result = mysql_query("update $table set idx=idx+1 where idx>=$re_idx",$conn);

>> >> >> >> mysql_query("unlock table",$conn);

>> >> >> >>

>> >> >> >> 위의 소스를 pgsql로 변경을 하면 어떻게 해야하나요?

>> >> >> >>

>> >> >> >> 제가 구현한 방법은 아래와 같습니다. 그런데 안되던데요

>> >> >> >>

>> >> >> >> pg_exec($conn,"begin");

>> >> >> >> $result = pg_exec($conn,"update $table set idx=idx+1 where idx>=$re_idx");

>> >> >> >> if($result) pg_exec($conn,"commit");

>> >> >> >> else pg_exec($conn,"rollback");

>> >> >> >>

>> >> >> >> by 전병혁 (chunbh)

[Top]
No.
제목
작성자
작성일
조회
3791설치에러 및 초보의 몇가지 질문입니다.
홍창균
2001-12-26
1346
3790설치에러 및 초보의 몇가지 질문입니다.
홍창균
2001-12-26
1487
3793┕>Re: 설치에러 및 초보의 몇가지 질문입니다. [1]
소똥
2001-12-26 14:01:10
1599
3772한글정렬의 문제(postgrel ver 7.0.2) [1]
전기흥
2001-12-24
1497
3764어떻게 변경을 해야 하나요?
전병혁
2001-12-22
1483
3765┕>Re: 어떻게 변경을 해야 하나요?
소똥
2001-12-22 13:56:21
1611
3767 ┕>Re: Re: 어떻게 변경을 해야 하나요?
전병혁
2001-12-22 15:05:12
1441
3768  ┕>Re: Re: Re: 어떻게 변경을 해야 하나요?
소똥
2001-12-22 16:49:42
1560
3769   ┕>Re: Re: Re: Re: 어떻게 변경을 해야 하나요?
전병혁
2001-12-22 18:41:54
1741
3771    ┕>Re: Re: Re: Re: Re: 어떻게 변경을 해야 하나요?
이주호
2001-12-23 22:22:07
1463
3762한글 소팅문제...
조성태
2001-12-22
1575
3766┕>Re: 한글 소팅문제...
조성준
2001-12-22 14:28:57
1478
3759DB안의 내용을 다른 화일로 만들고 싶습니다. [1]
김영진
2001-12-21
1641
3760┕>Re: select문은 걍.. 보여지기만 하는거 아닌가여..?? [1]
김영진
2001-12-21 17:35:52
1464
3761┕>Re: DB안의 내용을 다른 화일로 만들고 싶습니다.
소똥
2001-12-21 18:36:32
1669
3758copy명령어로 insert할 때 문제가.. [1]
김윤순
2001-12-20
1800
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다