PostgreSQL 9.3.2文書 | ||||
---|---|---|---|---|
前のページ | 上に戻る | 第 32章ラージオブジェクト | 次のページ |
ラージオブジェクトの実装では、ラージオブジェクトを"チャンク"に分割し、チャンクをデータベース内の行に格納しています。 B-treeインデックスは読み書き用のランダムアクセスに際して、正確なチャンク番号の高速検索を保証しています。
ラージオブジェクト用のチャンクは継続性を持ちません。 例えば、アプリケーションが新しくラージオブジェクトを開き、1000000オフセットにシークし、数バイトそこに書き出した場合、これは1000000バイトほどの格納領域が割り当てられることにはなりません。 データバイトの範囲に対応するチャンクのみが実際に書き出されます。 しかし読み取り操作は最後に存在するチャンクの前にある未割り当ての領域すべてとしてゼロを読み取ります。 これはUnixファイルシステムの"スパース割り当て"ファイルの一般動作に一致します。
PostgreSQL 9.0からラージオブジェクトは所有者およびアクセス権限を持ちます。 これはGRANTおよびREVOKEを使用して管理可能です。 ラージオブジェクトの読み取りにはSELECT権限が必要です。 また書き出し、切り詰めのためにはUPDATE権限が必要です。 ラージオブジェクトの所有者(またはデータベーススーパーユーザ)のみがラージオブジェクトの削除、コメント付け、所有者の変更が可能です。 過去のリリースとの互換性に関するこの動作を調整するためにはlo_compat_privileges実行時パラメータを参照してください。