読み方 : バイトエーがた

BYTEA型【byte array type】

BYTEA型とは?

PostgreSQLで任意のバイナリデータを格納するためのデータ型。画像ファイルや音声データ暗号鍵、圧縮済みデータなど、文字列として表現できないバイト列をそのままデータベースに保存できる。
BYTEA型のイメージ画像

文字列型は格納するバイト列を特定の文字コードに従って解釈するが、BYTEA型は内容を単なるバイトの並びとして扱う。0から255までの任意の値を含むデータをそのまま保持できるため、制御コード文字コードに依存しない生のバイナリ情報も変質させずに記録できる。

SQL文でBYTEA型の値を直接記述する場合、16進数形式とエスケープ形式の2通りが使われる。PostgreSQL 9.0以降はデフォルトの出力形式が16進数形式に変更されており、「\x」で始まる表記が一般的である。アプリケーション開発においては、Pythonのbytes型やJavaのbyte配列など、各言語のバイト列型と対応付けて扱われる。データベース接続ライブラリが相互変換を自動処理するため、開発者がSQL上でバイト列を直接記述する場面は多くない。

格納できるデータの最大サイズは1GBである。ただし、大容量のファイルを大量にBYTEA型で保持すると、バックアップや検索などの処理に影響が及ぶ場合がある。そのため、実務上はバイナリデータ本体をファイルとしてサーバ上のファイルシステムに置き、データベースにはファイルパスメタデータのみを記録するという運用が行われることもある。

PostgreSQLには、バイナリデータを管理する別の仕組みとしてラージオブジェクトLOBLarge Object)機能も存在する。BYTEA型がテーブルの一列として通常のデータと同様に格納されるのに対し、ラージオブジェクトは専用の領域で独立して管理され、全体の取り出しを待たずに先頭から徐々に処理を進めるストリームデータ処理が可能である。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。