0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

MySQLのBINARY/VARBINARY型とは

0
Last updated at Posted at 2026-01-09

はじめに

本記事は、MySQLを使っていて「そういえばバイナリデータってなんだっけ?」となったので、個人の備忘録として書いています。

そもそも バイナリ とは

コンピュータで取り扱うデータの記述形式の一つで、テキスト(文字)形式ではないもの。実行形式のプログラム、画像、音声、動画などがこの形式で記述されることが多い。1

ざっくりいうとコンピューターが理解できるテキスト以外のデータということですね。

BINARY および VARBINARY 型

BINARY および VARBINARY 型は、非バイナリ文字列ではなくバイナリ文字列を格納する点を除き、CHAR および VARCHAR と似ています。 つまり、文字列ではなくバイト文字列が格納されます。 2

CHARやVARCHAR型が「文字」を保存するのに対し、BINARYやVARBINARY型は「バイト列」、つまりただの数字の並びを保存する型ということですね。

主に以下の用途で使われます。

  • ハッシュ値(SHA-256 など)
  • UUID(バイナリ形式)
  • 暗号化データ

BINARY型

特徴は、長さが固定であることです。
例えば BINARY(16) で定義された場合、長さは16バイトで固定されるため、足りない分は以下のように 0x00 (NULLバイト)で埋められます。

sql
INSERT INTO t VALUES ('abc');

実際に保存される中身(イメージ):

scss
61 62 63 00 00 00 ... (16バイト)

サイズが常に一定なので比較が高速で行えるというメリットがあります。

主に以下の用途で使われます。

  • UUID(16バイト)
  • 固定長ハッシュ値(MD5 = 16B、SHA-256 = 32B)

VARBINARY型

特徴は、長さが可変であることです。
先ほどと同様にVARBINARY(16) で定義した場合でも、0x00で埋めはされず、必要な分だけ保存されます。

sql
INSERT INTO t VALUES ('abc');

実際に保存される中身(イメージ):

scss
61 62 63

BINARY型に比べ比較はやや遅くなる(とはいえ通常は誤差)ものの、可変であることで無駄な容量を使わないというメリットがあります。

主に可変長のバイナリに使われます。

BINARY vs VARBINARY

ざっくりまとめると以下のようになります。

項目 BINARY VARBINARY
長さ 固定 可変
パディング 0x00で埋める なし
容量効率 悪い場合あり 良い
比較速度 やや速い やや遅い
主な用途 UUID・固定長 可変長バイナリ

BLOB型とは?

同じバイナリデータを扱うものとしてBLOB型にも簡単に触れておきます。
一言でいうと 「サイズ制限の大きいバイナリデータ用の型」 です。

VARBINARY型が最大65,535B保存できるのに対し、BLOB型は最大4GBと非常に大きなバイナリデータを保存できます。

BLOB型の中でもいくつか種類があってそれによってもサイズは前後します。

最大サイズ
TINYBLOB 255B
BLOB 64KB
MEDIUMBLOB 16MB
LONGBLOB 4GB

主に以下の用途で使われます。

  • 画像
  • 音声
  • PDF
  • 暗号化されたデータ
  1. https://e-words.jp/w/%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA.html

  2. https://dev.mysql.com/doc/refman/8.0/ja/binary-varbinary.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?