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 4050 게시물 읽기
No. 4050
몇가지 궁금한점...
작성자
bk
작성일
2002-02-25 19:46
조회수
1,699

MySQL만 쓰다가 innodb를 써도 서브쿼리등 기능이 미약한거같아서

postgreSQL로 바꿔서 태스트해보고 있는데요..

몇가지 이상한점이 있어서...

 

1. postgreSQL에는 tinyint가 없나요? int2부터 있는거같은데..

 

2. PgSQL user 매뉴얼보면 cost,rows,width에 대해 설명이 되있는데

잘 이해가 안가서..

cost는 데이타가 저장된 disk page fetch하는 개수라고 되있는데

 

----------------------------------------------------------

Sort (cost=1.23..1.23 rows=9 width=7)

-> Seq Scan on t2 (cost=0.00..1.09 rows=9 width=7)

 

EXPLAIN

-----------------------------------------------------------

 

이렇게 나오면 1차로 sort하는데 1.23disk page를 스캔해서 소트한다음

그걸 2차로 스캔하는데 그게 0~1.09disk page가 된다는 얘기인가요?

 

3. pgsql의 문제인거같은데

인덱스가 없을때 table t2의 실행계획을 보면

rows가 1000이 나옵니다. 분명 9개row만 들어있는데...

order by no하면 69.83이라는 엄청난...

 

또 인덱스가 있어도 where절 썼는데 인덱스 사용을 안하네요..

(전에 mysql쓸때 인덱스를 양수로 하고 desc쓰면

인덱스 안쓰는 경우가 있어서 음수로 했는데 postgreSQL은 상관없네요)

 

postgres=# select * from t2;

no | data

-----+------

-1 | a

-2 | b

-3 | d

-4 | p

-5 | q

-6 | 1

-8 | e

-9 | y

-10 | p

(9 rows)

 

 

인덱스 없을떄

 

postgres=# explain select * from t2;

NOTICE: QUERY PLAN:

 

Seq Scan on t2 (cost=0.00..20.00 rows=1000 width=7)

 

EXPLAIN

 

 

postgres=# explain select * from t2 order by no;

NOTICE: QUERY PLAN:

 

Sort (cost=69.83..69.83 rows=1000 width=7)

-> Seq Scan on t2 (cost=0.00..20.00 rows=1000 width=7)

 

EXPLAIN

 

 

postgres=# explain select * from t2 where no='-5';

NOTICE: QUERY PLAN:

 

Seq Scan on t2 (cost=0.00..22.50 rows=5 width=7)

 

EXPLAIN

 

 

인덱스가 있을때

 

postgres=# explain select * from t2;

NOTICE: QUERY PLAN:

 

Seq Scan on t2 (cost=0.00..1.09 rows=9 width=7)

 

EXPLAIN

 

 

postgres=# explain select * from t2 order by no;

NOTICE: QUERY PLAN:

 

Sort (cost=1.23..1.23 rows=9 width=7)

-> Seq Scan on t2 (cost=0.00..1.09 rows=9 width=7)

 

EXPLAIN

 

 

postgres=# explain select * from t2 where no='-5';

NOTICE: QUERY PLAN:

 

Seq Scan on t2 (cost=0.00..1.11 rows=1 width=7)

 

EXPLAIN

 

 

mysql만 쓰다보니 쉬운거에 넘 익숙해져서...

왠지 모든게 다 어렵게 느껴지는 TT;

[Top]
No.
제목
작성자
작성일
조회
4053프로시져에서 파일 만들기가 가능한지..
배재한
2002-02-26
1221
4052qmail 과 postgreSQL을 서로 붙이고 싶은데..? [1]
이봉우
2002-02-26
1099
4054┕>Re: qmail 과 postgreSQL을 서로 붙이고 싶은데..? [2]
이봉우
2002-02-28 09:16:39
1294
4086┕>Re: qmail 과 postgreSQL을 서로 붙이고 싶은데..?
어떤생각
2002-03-18 15:40:40
1189
4051[질문] 펄의 pg 모듈에 관한... ㅠ.ㅠ
꿀꿀이
2002-02-26
1021
4050몇가지 궁금한점...
bk
2002-02-25
1699
4072┕>Re: 몇가지 궁금한점...
김대성
2002-03-12 13:38:38
1363
4049[질문] PL/pgSQL 에서 데이터 베이스 바꾸는 방법 [1]
장원준
2002-02-24
1101
4046SQL 서버에 관한 질문. [1]
이명신
2002-02-22
1086
4043php에서 commit... [1]
향이
2002-02-21
1234
4045┕>Re: php에서 commit...
향이
2002-02-21 19:42:52
1117
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다