본문 바로가기
CS/데이터베이스

Oracle- LOB 세그먼트, 테이블스페이스

by Wanado 2025. 4. 28.
728x90
LOB STORE AS SECUREFILE LS_DIFF_01 (TABLESPACE ...)

LOB (Large Object)란?

  • LOB은 BLOB(Binary Large Object), CLOB(Character Large Object) 같은 대용량 데이터를 저장할 때 사용하는 데이터 타입입니다.
  • 예를 들면:
    • 파일, 이미지, 동영상
    • 수십~수백 MB 이상의 텍스트

STORE AS SECUREFILE

  • 오라클은 LOB을 저장할 때 방식이 2가지 있습니다:
    • BASICFILE: 옛날 방식 (9i ~ 11g 초기)
    • SECUREFILE: 새 방식 (11g 이후 기본)

SECUREFILE은 다음을 지원합니다:

  • 데이터 압축 (COMPRESS)
  • 데이터 암호화 (ENCRYPT)
  • 중복 제거 (DEDUPLICATE)
  • 빠른 읽기/쓰기 성능
  • 파일시스템처럼 최적화된 LOB 저장

요약
→ SECUREFILE은 더 빠르고, 압축 가능하고, 암호화도 지원하는 최신 LOB 저장 방식입니다.


3. LS_DIFF_01

  • LS_DIFF_01은 LOB 세그먼트 이름입니다.
  • 오라클은 내부적으로 LOB 데이터를 별도 LOB Segment라는 객체에 저장합니다.
  • 이름을 따로 지정하지 않으면 시스템이 자동 생성하는데, 명시적으로 LS_DIFF_01라고 이름 붙인 거예요.

4. (TABLESPACE ...)

  • (TABLESPACE tablespace_name)은 이 LOB 세그먼트를 특정 테이블스페이스에 저장하겠다는 뜻입니다.
  • 예를 들어:→ 그럼 이 LOB 데이터는 USERS 테이블스페이스 안에 저장됩니다.
  • sql
    복사편집
    (TABLESPACE USERS)

LOB은 대량 데이터를 다루니까, 디스크 성능이나 비용을 고려해서 테이블스페이스를 따로 지정하는 경우가 많아요.

 

CREATE TABLE my_table (
    id NUMBER,
    data BLOB
)


LOB (data) STORE AS SECUREFILE LS_DIFF_01 (TABLESPACE USERS);
이 테이블은 BLOB 컬럼 data를 SECUREFILE로 LS_DIFF_01이라는 세그먼트에 저장하고, USERS 테이블스페이스에 저장합니다.

 

📌 LOB 세그먼트란?

LOB 세그먼트
**오라클이 LOB(BLOB, CLOB) 타입 데이터를 별도로 저장하는 "물리적 공간(저장소)"**입니다.

쉽게 말하면:

"테이블 본문에 담을 수 없는 큰 덩어리 데이터(Large Object)를 따로 저장하는 창고(별도 공간)"입니다.

 

📌 테이블스페이스(Tablespace)란?

**오라클 데이터베이스에서, 데이터를 저장하는 "논리적인 디스크 공간 단위"**입니다.

쉽게 말하면:

"파일 시스템의 폴더 같은 것"
"테이블이나 인덱스를 저장하기 위한 논리적 저장 구역"입니다.

 

 

  • 오라클은 모든 데이터를 **디스크(파일)**에 저장해야 합니다.
  • 그런데 그냥 막 저장하면 관리가 힘들겠죠?
  • 그래서 디스크 공간을 여러 **"테이블스페이스"**로 나눠서 관리합니다.
    • 테이블스페이스마다 이름이 있고
    • 각 테이블스페이스는 하나 이상의 **데이터파일(Datafile)**로 구성됩니다.
  • 그리고 테이블, 인덱스, LOB 세그먼트 같은 것들은 어떤 테이블스페이스에 저장할지 결정합니다.

 

 

 

728x90

'CS > 데이터베이스' 카테고리의 다른 글

오라클] 함수와 프로시져  (0) 2023.12.15
아키텍처: MySQL 엔진과 스토리지 엔진(InnoDB, MyISAM)  (1) 2022.10.31
웹서버와 WAS  (0) 2022.10.31
데이터베이스의 기본  (0) 2022.08.19