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

MySQL BLOB 데이터 타입 완벽 정리: 특징과 4가지 종류 비교

MySQL BLOB 데이터 타입이란?

BLOB(Binary Large Object, 바이너리 대형 객체)은 가변적인 크기의 데이터를 저장할 수 있는 MySQL 데이터 타입입니다. 주로 이미지, 오디오, 비디오 파일 등 바이너리 데이터를 데이터베이스에 직접 저장할 때 사용됩니다.

BLOB의 주요 특징

  • BLOB은 대용량 바이너리 데이터 저장을 위해 설계된 컬럼 타입 계열입니다.
  • BLOB은 실제로 네 가지 타입으로 나뉩니다: TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB.
  • 네 가지 타입은 서로 매우 유사하며, 유일한 차이점은 각각 저장할 수 있는 최대 데이터 크기입니다.

BLOB 타입별 최대 저장 용량

타입최대 크기
TINYBLOB255바이트 (2⁸ − 1)
BLOB65,535바이트, 약 64KB (2¹⁶ − 1)
MEDIUMBLOB16,777,215바이트, 약 16MB (2²⁴ − 1)
LONGBLOB4,294,967,295바이트, 약 4GB (2³² − 1)

참고로 BLOB과 짝을 이루는 텍스트 계열 타입으로 TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT가 있으며, 이들은 문자 데이터를 저장한다는 점에서 BLOB과 대비됩니다.

BLOB 컬럼 선언 예제

다음 예제는 테이블 생성 시 하나의 컬럼을 BLOB 타입으로 선언하는 방법을 보여줍니다.

mysql> Create table stock(ID INT, Name VARCHAR(40), PHOTO BLOB, Quantity INT);
Query OK, 0 rows affected (0.15 sec)

mysql> Describe stock;
+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| ID       | int(11)     | YES  |     | NULL    |       |
| Name     | varchar(40) | YES  |     | NULL    |       |
| PHOTO    | blob        | YES  |     | NULL    |       |
| Quantity | int(11)     | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+
4 rows in set (0.03 sec)

위 예제에서 PHOTO 컬럼이 BLOB 타입으로 선언되어 상품 사진 같은 바이너리 이미지 데이터를 저장할 수 있습니다. DESCRIBE 명령 결과에서 PHOTO 컬럼의 타입이 'blob'으로 표시되는 것을 확인할 수 있습니다.