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 10108 게시물 읽기
No. 10108
ctid 문의
작성자
임진승(jinseungim)
작성일
2019-10-08 15:23
조회수
3,254

 오라클은 rowid라고 인덱스에 해당 값이 존재하는데요

postgresql도 비슷한게 ctid라고 존재한다고 여러 글에서 봤습니다

하지만 ctid는 인덱스가 아닌 테이블에 존재하는거 같은데요

postgresql 에서도 오라클 같이 인덱스에 존재하는 rowid 같은 것이 존재 하나요?

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

그 테이블의 ctid 값이 인덱스의 자료 위치 값으로 사용됩니다. 당연히 테이블의 ctid 를 참조해야 인덱스 탐색 결과 그 테이블의 자료를 찾을 수 있겠죠. 

자세한 것은 pageinspect 확장 모듈의 bt_page_items() 함수를 이용해서 살펴볼 수 있습니다. 

 

postgres@postgres=# select ctid,* from tt;
  ctid  | a | b 
--------+---+---
 (0,6)  | 1 | 1
 (0,7)  | 1 | 1
 (0,8)  | 1 | 1
 (0,9)  | 3 | 
 (0,10) | 2 | 
 (0,11) | 3 | 
 (0,12) | 4 | 
 (0,13) | 5 | 
(8개 행)
postgres@postgres=# create index tt_a_i on tt (a);
CREATE INDEX
postgres@postgres=# select * from bt_page_items('tt_a_i',1);
 itemoffset | ctid  | itemlen | nulls | vars |          data           
------------+-------+---------+-------+------+-------------------------
          1 | (0,6) |      16 | f     | f    | 01 00 00 00 00 00 00 00
          2 | (0,7) |      16 | f     | f    | 01 00 00 00 00 00 00 00
          3 | (0,8) |      16 | f     | f    | 01 00 00 00 00 00 00 00
          4 | (0,2) |      16 | f     | f    | 02 00 00 00 00 00 00 00
          5 | (0,1) |      16 | f     | f    | 03 00 00 00 00 00 00 00
          6 | (0,3) |      16 | f     | f    | 03 00 00 00 00 00 00 00
          7 | (0,4) |      16 | f     | f    | 04 00 00 00 00 00 00 00
          8 | (0,5) |      16 | f     | f    | 05 00 00 00 00 00 00 00
(8개 행)
김상기(ioseph)님이 2019-10-08 17:57에 작성한 댓글입니다.

 ctid 가 rowid 랑 비슷한 개념이기는 하나

update  되도 변경이 되고,

파티션테이블에서는 중복되니 오라클의 rowid  처럼

함부로 쓰면 안됩니다.

김성식(hellower)님이 2019-10-12 13:26에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
10112psql 접속 옵션 [4]
김소영
2019-10-28
3311
10111테이블이 삭제되었습니다.ㅜㅜ. 삭제 이력조회를 할수 있을까요?? [1]
일쌍다반사
2019-10-23
2761
1010912 버전 업그레이드 이야기 [3]
김상기
2019-10-13
2985
10108ctid 문의 [2]
임진승
2019-10-08
3254
10107crosstab에서 동적으로 2개를 뽑아내려하면 어떻게 해야되나요? [2]
이태영
2019-10-04
2732
10106CLIENT_ENCODING 영구적으로 UTF-8로하는방법 [1]
신규사용자
2019-09-30
2751
10105windows10에 postgresql 설치 후... [1]
전상도
2019-09-25
3291
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다