Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

BLOB과 CLOB 데이터 유형의 차이점 완벽 정리

BLOB과 CLOB 데이터 유형의 차이점

BLOB(Binary Large Object)과 CLOB(Character Large Object)은 함께 LOB(Large Object, 대용량 객체) 유형이라고 불립니다. 두 데이터 유형 모두 대용량 데이터를 저장하기 위해 사용되지만, 저장하는 데이터의 성격이 다릅니다. 아래 표에서 BLOB과 CLOB의 주요 차이점을 확인해 보세요.

BLOBCLOB
BLOB은 Binary Large Object(바이너리 대형 객체)의 약자입니다.CLOB은 Character Large Object(문자 대형 객체)의 약자입니다.
대용량 바이너리(binary) 데이터를 저장하는 데 사용됩니다.대용량 텍스트(text) 데이터를 저장하는 데 사용됩니다.
값을 바이너리 스트림 형태로 저장합니다.값을 문자 스트림 형태로 저장합니다.
동영상, 이미지, GIF, 오디오 파일 등을 저장할 수 있습니다.텍스트 파일, PDF 문서, 워드 문서 등을 저장할 수 있습니다.
MySQL에서는 다음 데이터 유형으로 지원됩니다:
  • TINYBLOB
  • BLOB
  • MEDIUMBLOB
  • LONGBLOB
MySQL에서는 다음 데이터 유형으로 지원됩니다:
  • TINYTEXT
  • TEXT
  • MEDIUMTEXT
  • LONGTEXT
JDBC API에서는 java.sql.Blob 인터페이스로 표현됩니다.JDBC API에서는 java.sql.Clob 인터페이스로 표현됩니다.
JDBC의 Blob 객체는 바이너리 데이터 자체를 담지 않고, BLOB 데이터가 저장된 위치(location)를 가리킵니다.JDBC의 Clob 객체 역시 문자 데이터 자체를 담지 않고, CLOB 데이터가 저장된 위치(location)를 가리킵니다.
BLOB을 저장하려면 JDBC(PreparedStatement)에서 다음 메서드를 사용합니다:
  • setBlob()
  • setBinaryStream()
CLOB을 저장하려면 JDBC(PreparedStatement)에서 다음 메서드를 사용합니다:
  • setClob()
  • setCharacterStream()
BLOB을 조회할 때는 ResultSet에서 다음 메서드를 제공합니다:
  • getBlob()
  • getBinaryStream()
CLOB을 조회할 때는 ResultSet에서 다음 메서드를 제공합니다:
  • getClob()
  • getCharacterStream()

BLOB과 CLOB 선택 기준

정리하면, 이미지·동영상·오디오 같은 바이너리 파일을 다룰 때는 BLOB을, 긴 문서나 대량의 텍스트 데이터를 다룰 때는 CLOB을 사용하는 것이 적합합니다. 데이터의 성격에 맞는 LOB 유형을 선택하면 저장 공간을 효율적으로 활용하고 데이터 입출력 성능도 개선할 수 있습니다.