반응형
데이터베이스 저장구조
데이터를 저장하려면 테이블 스페이스를 생성해야한다.
테이블 스페이스를 생성했으면 세그먼트를 생성한다.
그림과 같이 테이블 스페이스에는 여러개의 세그먼트가 존재하고 세그먼트 안에 여러개의 익스텐트로 구성된다.
파티션 구조가 아니라면 테이블, 인덱스가 각각 하나의 세그먼트가 된다.
파티션 구조라면 각 파티션이 하나의 세그먼트가 된다.
데이터를 입력하다가 공간이 부족해지면 테이블스페이스로부터 익스텐트를 추가로 할당받는다.
익스텐트 단위로 공간을 확장하지만, 실제로 저장하는 공간은 데이터 블록이다.
한 블록은 하나의 테이블이 독점한다 = 한 블록에 저장된 레코드는 모두 같은 테이블 레코드이다.
한 익스텐트도 하나의 테이블이 독점한다. = 한 익스텐트에 담긴 블록은 모두 같은 테이블 블록이다.
(DB마다 다를 수 있다)
익스텐트 내 블록은 서로 인접한 연속된 공간이지만, 익스텐트끼리는 연속된 공간이 아닐 수 있다.
용어설명
테이블 스페이스 : 세그먼트를 담는 콘테이너
세그먼트 : 데이터 저장공간이 필요한 오브젝트 (테이블, index등)
익스텐트 : 공간을 확장하는 단위, 연속된 블록 집합
블록 : 데이터를 읽고 쓰는 단위
반응형
'컴퓨터공학 기초 > 데이터베이스' 카테고리의 다른 글
[MongoDB] Index 를 이용하여 Sort 하기 (0) | 2021.07.16 |
---|---|
[PostgreSQL] postgresql replication slot does not exist (0) | 2021.03.15 |
[데이터베이스] 소프트 파싱과 하드 파싱 (0) | 2020.04.26 |
[데이터베이스] SQL 최적화과정 (0) | 2020.04.26 |
[데이터베이스] org.postgresql.util.PSQLException:CODE[0]STATE[22001]ERROR: value too long for type character varying(1) (0) | 2020.04.16 |
댓글