BLOB과 CLOB 데이터 유형의 차이점
BLOB(Binary Large Object)과 CLOB(Character Large Object)은 함께 LOB(Large Object, 대용량 객체) 유형이라고 불립니다. 두 데이터 유형 모두 대용량 데이터를 저장하기 위해 사용되지만, 저장하는 데이터의 성격이 다릅니다. 아래 표에서 BLOB과 CLOB의 주요 차이점을 확인해 보세요.
| BLOB | CLOB |
|---|---|
| BLOB은 Binary Large Object(바이너리 대형 객체)의 약자입니다. | CLOB은 Character Large Object(문자 대형 객체)의 약자입니다. |
| 대용량 바이너리(binary) 데이터를 저장하는 데 사용됩니다. | 대용량 텍스트(text) 데이터를 저장하는 데 사용됩니다. |
| 값을 바이너리 스트림 형태로 저장합니다. | 값을 문자 스트림 형태로 저장합니다. |
| 동영상, 이미지, GIF, 오디오 파일 등을 저장할 수 있습니다. | 텍스트 파일, PDF 문서, 워드 문서 등을 저장할 수 있습니다. |
MySQL에서는 다음 데이터 유형으로 지원됩니다:
| MySQL에서는 다음 데이터 유형으로 지원됩니다:
|
JDBC API에서는 java.sql.Blob 인터페이스로 표현됩니다. | JDBC API에서는 java.sql.Clob 인터페이스로 표현됩니다. |
| JDBC의 Blob 객체는 바이너리 데이터 자체를 담지 않고, BLOB 데이터가 저장된 위치(location)를 가리킵니다. | JDBC의 Clob 객체 역시 문자 데이터 자체를 담지 않고, CLOB 데이터가 저장된 위치(location)를 가리킵니다. |
BLOB을 저장하려면 JDBC(PreparedStatement)에서 다음 메서드를 사용합니다:
| CLOB을 저장하려면 JDBC(PreparedStatement)에서 다음 메서드를 사용합니다:
|
BLOB을 조회할 때는 ResultSet에서 다음 메서드를 제공합니다:
| CLOB을 조회할 때는 ResultSet에서 다음 메서드를 제공합니다:
|
BLOB과 CLOB 선택 기준
정리하면, 이미지·동영상·오디오 같은 바이너리 파일을 다룰 때는 BLOB을, 긴 문서나 대량의 텍스트 데이터를 다룰 때는 CLOB을 사용하는 것이 적합합니다. 데이터의 성격에 맞는 LOB 유형을 선택하면 저장 공간을 효율적으로 활용하고 데이터 입출력 성능도 개선할 수 있습니다.