.
1.
temp 테이블 스페이스는 create temp table ... 이 작업 할때 사용할 영역을 말합니다.
system 테이블스페이스는 pg_default와, pg_global에 담겨지는 시스템 카탈로그 테이블들이 사용하는
추상적인 이름입니다.
system 테이블스페이스와 비교되는 것으로는 유저 테이블스페이스라고 하지요.
2.
스키마도 추상적인 영역이기 때문에, 그 영역에 소속된 물리적인 객체들의 그 저장 공간(테이블 스페이스)을 어디로 지정하겠다만 있습니다.
3.
인덱스를 만들 때도 테이블스페이스를 지정하는 옵션이 있으니 그걸 사용하면 됩니다.
4-6
이미지가 1GB 이하 크기라면, large object로 처리하지 않고, 그냥 bytea 자료형으로 처리합니다.
toast 에 대한 것은 신경 안써도 좋습니다.
(내부적으로 8KB 이상 크기의 자료를 처리할 때 사용합니다. PostgreSQL 에서는 꽤 많은 자료형들이
8KB이상 크기의 자료를 담을 수 있거든요. 이 때 내부적으로 사용하는 것입니다)
하지만,
중요한 부분은 어떤 자료를 DB에 보관할 것인가?라는 아주 원론적인 문제부터 풀어가야할 듯합니다.
동영상이나, 이미지 같이 글자가 아닌 자료들에 대해서는 DB에 보관하지 않는 것이 일반적인 설계입니다.
왜냐하면, 바이너리형태의 자료를 DB에 저장한다는 것은 그만큼의 입력 작업이 또 한 번 진행되기 때문입니다.
어떻게 최적화 하셨는지 팁을 공유해 주세요 . . ^^
보고 싶습니다 . ^^
부탁드려요 . .
DB의 파티션에 대한 최적화는 wiki에 나와 있는 대로가 가장 표준안입니다.
PostgreSQL 소프트웨어가 있는 곳과, (통상 OS 영역과 분리를 하죠)
자료가 보관되는 곳과, (디스크 물리적 공간이 넉넉한 곳을 사용합니다)
트랜잭션 로그가 보관되는 곳, (디스크 I/O 성능이 제일 좋은 장치를 사용합니다)
서버가 운영되면서 만들어지는 각종 임시 파일들을 저장 하는 곳 (리눅스라면, 통상 tmpfs 영역을 사용합니다)
그리고, 오래전에 언급한 아카이브 기능을 켜 두고, 베이스 백업과 아카이브된 트랜잭션 로그 조각 파일들을 가지고, 부분 복구까지 고려한다면,
자료 영역을 시스템 영역과 사용자 정의 테이블스페이스 영역으로 분리하기도 합니다.
또한 이것을 위해서, 아카이브된 트랜잭션 로그 조각 파일을 보관하는 곳,
베이스백업을 보관하는 곳,
이렇게 각각 분리하는 것이 최적화 하는 팁의 전부입니다.
윗 위키 이야기와 크게 다르지는 않습니다.