[PostgreSQL] - TOAST란 무엇인가

C__W.A·2025년 1월 13일

SQL

목록 보기
4/5
post-thumbnail

📌 긴 Text를 처리할때 어떻게 처리할까?

PostgreSQL에서 긴 텍스트를 처리하기 위해 'text' 데이터 타입을 사용합니다. 'text' 데이터 타입은 다음과 같은 특징을 가지고 있습니다

  • 길이 제한 없음: 'text' 타입은 길이에 제한이 없는 가변 길이 문자열을 저장할 수 있습니다.
  • 대용량 데이터 처리: 매우 긴 문자열이나 대용량 텍스트 데이터를 저장하는 데 적합합니다.
    자동 저장 관리: PostgreSQL은 TOAST(The Oversized-Attribute Storage Technique)를 사용하여 큰 'text' 필드를 효율적으로 저장하고 관리합니다.
  • 유연성: 'varchar'나 'char'와 달리 길이를 미리 지정할 필요가 없어 유연하게 사용할 수 있습니다.
    'text' 타입을 사용하려면 테이블 생성 시 다음과 같이 컬럼을 정의하면 됩니다
CREATE TABLE articles (
    id serial PRIMARY KEY,
    title varchar(100),
    content text
);

📌 TOAST란 무엇일까?

TOAST(The Oversized-Attribute Storage Technique)는 PostgreSQL에서 대용량 데이터를 효율적으로 저장하고 관리하기 위해 사용되는 기술입니다135. 이 기술은 다음과 같은 특징을 가지고 있습니다

  • 큰 데이터 처리: TOAST는 테이블의 페이지 크기(일반적으로 8KB)보다 큰 데이터를 처리할 때 적용됩니다.
    데이터 분할 및 압축: 큰 데이터는 여러 조각(chunk)으로 분할되고, 필요에 따라 압축됩니다.
  • 외부 저장: 분할된 데이터는 별도의 TOAST 테이블에 저장됩니다.
  • 참조 방식: 원래 테이블의 컬럼에는 TOAST 테이블의 데이터를 참조하는 포인터가 저장됩니다.
  • 자동 처리: TOAST 처리는 대부분 데이터베이스 백엔드에서 자동으로 이루어져 개발자가 별도의 처리 로직을 구현할 필요가 없습니다.

TOAST를 통해 PostgreSQL은 저장 공간을 최적화하고, 큰 데이터의 처리 효율성을 높이며, 데이터 접근 시간을 개선할 수 있습니다

profile
기술은 문제를 해결하기 위해 존재한다

0개의 댓글