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 Tutorials 5759 게시물 읽기
No. 5759
테이블스페이스 이야기
작성자
김상기(ioseph)
작성일
2004-12-26 00:16ⓒ
2004-12-27 10:15ⓜ
조회수
10,429

8.0 버전에서 새롭게 등장한 것 가운데, 테이블스페이스라는 놈이 있습니다.

오라클이나, 기타 상용 RDBMS를 사용했던 사용자라면 그리 낯선 이름도 아닙니다.

하지만, 이번에 새롭게 등장한 테이블스페이스라는 놈이 오라클의 그것과 같을 것이다고 기대하면 좀 실망입니다.

 

예전부터 (기억하기로는 6.5.x 대에서도 있었던, ) db location 이라는 개념이 테이블스페이스로 이름만 바뀐 것입니다.

그리고, 그것과 관계된 여러가지 SQL 구문들이 확장되면서 좀더 유연해졌습니다.

테이블스페이스의 기본 개념은 OS의 특정 파티션에 해당 자료를 둘 수 있다는 것 뿐입니다.

이것으로 얻는 이익은 자료가 많아져서 하나의 디렉토리에 너무 많은 파일이 쌓이는 것을 막는 것이면, 하드디스크 IO를 분산 할 수 있다는 것입니다. (오라클의 테이블스페이스랑 비교하면 많이 비흡하지요.)

 

테이블스페이스를 만드려면,

CREATE TABLESPACE 테이블스페이스이름 LOCATION '/pgdata/user_data'

이런 방식으로 만듭니다. 이때 주의 하셔야할 것은 저 /pgdata/user_data 디렉토리의 소유주는 postmaster 프로그램을 실행한 OS 시스템 사용자여야하며, 퍼미션은 보안상 700으로 만들어야합니다.

win32 기반이라면, 해당 폴더의 속성창을 열어서 보안 탭에서 postmaster 서비스를 실행하는 사용자를 추가하고, 모든 권한을 할당해주어야합니다.

 

테이블스페이스는 SCHEMA나 사용자와 마찬가지로 global 설정입니다. 그래서, 새롭게 데이터베이스를 만들더라고 이 설정은 그대로 가져갑니다.

 

테이블스페이스 설정은 CREATE DATABAE, CREATE TABLE, CREATE INDEX, ALTER TABLE, ALTER INDEX 등에서 사용될 수 있습니다. - 즉, OS 차원에서 보면, 특정 파일을 특정 파티선에 만들고, 다른 파티션으로 옮기고 할 수 있습니다.

 

테이블스페이스 활용법은 오라클 처럼, 테이블은 A 위치에, 인덱스는 B 위치에, 또는 A 사용자는 D 드라이브에, B 사용자는 E 드라이브에, 이런식으로 사용합니다.

 

별로 어렵지 않은 개념이고, SQL 구문도 별로 어렵지 않습니다.

자세한 것은 필요할 때 마다 관련 문서를 살펴보면 되고, 귀찮으면, psql 에서 해당 구문을 실행하기 전에, \h 명령을 잘 활용하면 됩니다.

 

9.0 버전에는 진정한 테이블스페이스 기능으로 확장 되길 바라며.

[Top]
No.
제목
작성자
작성일
조회
5830PostgreSQL DB Connect Poll : pgpool - 설정과가동
조성준
2005-01-25
11896
5829PostgreSQL DB Connect Pool : pgpool - 기본
조성준
2005-01-25
15328
57668.0에서 바뀌는 postgresql.conf 설정값들
김상기
2004-12-27
9889
5759테이블스페이스 이야기
김상기
2004-12-26
10429
57568.0에서 새롭게 등장한 generate_series 함수 활용하기. [1]
김상기
2004-12-24
8327
5755Win32용 PostgreSQL 사용하기
김상기
2004-12-23
12971
5578외래키 액션 연기
신기배
2004-10-06
6315
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다