varchar, int, double, number, date와 같은 일반적인 Datatype과 다르게 LOB을 사용하는 경우가 있다.
- 크기가 큰 데이터
- 비정형, 준정형 데이터를 저장할 때
LOB 데이터를 관리하는 방식에 basicfiles, securefiles가 있는데, 좀 더 나중에 나온 securefiles을 기준으로 설명
oracle은 LOB 데이터를 해시로 관리한다.
즉, 데이터 자체를 저장하는 것이 아닌 해시값을 저장하고 MD5 재해시를 통해 원 데이터를 복원하는 방식으로 관리하는 것이다.
어떤 장점이 있을까?
예를 들어, 같은 내용을 갖는 LOB 데이터를 100번 insert 하는 작업이 있다고 치자.
처음 한 번은 데이터를 저장해야할 것이다.
하지만 두번째 데이터부터는 데이터를 저장하지 않고 해시값으로 대체한다.
해당 압축 방식을 사용하면 메모리 공간을 효율적으로 사용할 수 있다.
위의 경우는 테이블 관점에서의 압축이다. LOB 데이터 자체도 압축이 가능하다.
이미 압축되어 있는 JPEG는 의미가 없지만, XML 데이터는 압축을 통해 메모리 공간을 더 절약할 수 있다.
LOB은 어지간하면 캐싱을 지양한다.
크기가 워낙 크기 때문에 정작 중요한 데이터가 메모리에서 밀려날 수 있기 때문이다.
LOB은 기본적으로 redo 영역에 로그를 저장하지만, 데이터가 크기 때문에 '메타 데이터'를 저장한다.
참고)
https://dataonair.or.kr/db-tech-reference/d-guide/dbms-1/?mod=document&uid=101828
'공부 이야기 > 데이터베이스' 카테고리의 다른 글
OCI - golden gate : Migration CDC (0) | 2024.04.19 |
---|---|
오라클 힌트 - /*+ result_cache */ (0) | 2024.04.18 |
pymongo.errors.OperationFailure: The field must be an accumulator object (0) | 2024.03.29 |
MongoDB의 성능 (0) | 2024.03.28 |
redis-cli info 명령어로 redis 서버 정보 확인하기 (0) | 2024.03.22 |