読み方 : バイトエーがた
BYTEA型【byte array type】
BYTEA型とは?

文字列型は格納するバイト列を特定の文字コードに従って解釈するが、BYTEA型は内容を単なるバイトの並びとして扱う。0から255までの任意の値を含むデータをそのまま保持できるため、制御コードや文字コードに依存しない生のバイナリ情報も変質させずに記録できる。
SQL文でBYTEA型の値を直接記述する場合、16進数形式とエスケープ形式の2通りが使われる。PostgreSQL 9.0以降はデフォルトの出力形式が16進数形式に変更されており、「\x」で始まる表記が一般的である。アプリケーション開発においては、Pythonのbytes型やJavaのbyte配列など、各言語のバイト列型と対応付けて扱われる。データベース接続ライブラリが相互変換を自動処理するため、開発者がSQL上でバイト列を直接記述する場面は多くない。
格納できるデータの最大サイズは1GBである。ただし、大容量のファイルを大量にBYTEA型で保持すると、バックアップや検索などの処理に影響が及ぶ場合がある。そのため、実務上はバイナリデータ本体をファイルとしてサーバ上のファイルシステムに置き、データベースにはファイルパスやメタデータのみを記録するという運用が行われることもある。
PostgreSQLには、バイナリデータを管理する別の仕組みとしてラージオブジェクト(LOB:Large Object)機能も存在する。BYTEA型がテーブルの一列として通常のデータと同様に格納されるのに対し、ラージオブジェクトは専用の領域で独立して管理され、全体の取り出しを待たずに先頭から徐々に処理を進めるストリームデータ処理が可能である。