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 |