항상 PgAdmin 을 가지고, 데이터 베이스를 생성할 때 무의식 적으로 아래와 같이 설정하곤 하는데
의미도 모르고 사용하고 있답니다. 어떤 내용/의미인가요?
Template 는 항상 template0 으로..
테이블 스페이스 는 항상 pg_default 으로..
안녕하세요,
말씀하신 내용들은 찬찬히 메뉴얼을 읽어보면 대부분 찾을 수 있습니다. 간단히 말씀드리면 template0은 데이터베이스 클러스터를 생성하면 만들어지고 변경할 수 없는 '순수한' 데이터베이스 템플릿입니다. 반면 template1은 해당 클러스터를 생성한 관리자가 변경 가능한 템플릿이지요. 예를들어, 기본적으로 데이터베이스를 생성했을 때 추가적인 객체나 스토어드 프로시저 언어를 포함하고 싶을 때 template1에 변경된 내용을 작성하면 그 이후에 새로 template1을 템플릿으로 만들어진 데이터베이스에 모두 자동으로 반영됩니다. 반면 정말 기본 상태의 데이터베이스를 만들고 싶다면 template0을 템플릿으로 데이터베이스를 만드시면 됩니다.
테이블스페이스도 메뉴얼을 보시면 쉽게 알 수 있습니다. 데이터베이스, 테이블, 인덱스의 테이블스페이스를 지정할 수 있는데 지정하지 않으면 디폴트 테이블스페이스를 사용하게 됩니다. 물론 이 디폴트 테이블스페이스도 설정으로 변경가능하고 DDL에 직접 다른 테이블스페이스를 지정할 수도 있습니다.
어려운 말들이 있지만 찾아 공부하면 이해가 잘 될 수 있을 것 같습니다.
좋을말씀 감사합니다!