MySQL BLOB 컬럼의 최대 데이터 길이
BLOB(Binary Large Object)은 가변적인 크기의 바이너리 데이터를 저장할 수 있는 MySQL 데이터 타입입니다. 주로 이미지, 동영상, PDF 문서 등 다양한 형태의 이진 데이터를 데이터베이스에 직접 저장할 때 활용됩니다.
BLOB은 저장 용량에 따라 네 가지 종류로 나뉘며, 각 타입마다 저장 가능한 최대 크기와 오버헤드(데이터 길이 정보를 기록하는 데 필요한 추가 바이트 수)가 다릅니다.
BLOB 타입별 최대 저장 용량 비교
| BLOB 타입 | 최대 저장 용량 | 오버헤드 |
|---|---|---|
| TINYBLOB | 최대 255바이트 | 1바이트 |
| BLOB | 최대 64KB | 2바이트 |
| MEDIUMBLOB | 최대 16MB | 3바이트 |
| LONGBLOB | 최대 4GB | 4바이트 |
실제 저장 시 알아두어야 할 점
이론적으로 LONGBLOB은 최대 4GB까지 저장할 수 있지만, 실제 환경에서는 서버의 max_allowed_packet 설정값과 클라이언트가 전송할 수 있는 패킷 크기에 따라 제한될 수 있습니다. 따라서 대용량 바이너리 데이터를 다룰 계획이라면 해당 설정값을 함께 확인하고 조정하는 것이 좋습니다.
또한 성능과 관리 측면에서는 대용량 파일을 데이터베이스에 직접 저장하기보다, 파일 시스템이나 객체 스토리지(예: Amazon S3)에 파일 자체를 보관하고 데이터베이스에는 파일 경로나 URL만 저장하는 방식이 더 유리한 경우가 많습니다.