2011-11-21 9 views
9

データベースにはblobという名前のカラムタイプがあり、バイナリデータの格納に使用されます。データベース内のバイナリデータ、blobと圧縮ベース64

多くの場合、バイナリデータを圧縮し、バイナリデータをbase64に変換し、base64文字列をvarcharまたはデータベースのテキストとして格納するソリューションがあります。

Pythonコードの例:圧縮BASE64としてブロブ

  • として

    私の質問がある:

    import zlib, base64 
    base64_str = base64.b64encode(zlib.compress(binary_data, 9)) 
    

    がので、2つのデータベースにバイナリデータを格納する方法があります: どのように優れているのですか?

  • +4

    誰もが方法2を使用する理由はわかりません。それは不必要な複雑さをもたらし、データを2度難読化します。しかし、私は圧縮ベース64が 'BLOB'に有益であるという事実がないという確かな証拠がないので、私は答えを投稿しません。 – Polynomial

    答えて

    12

    私自身の質問に答える必要があるようです。たいていの場合、圧縮されたbase64をデータベースに格納するのは良い考えではありません。 BLOBを格納するよりも複雑です。そして、ほとんどの場合、バイナリはbase64文字列よりも小さくなります。

    私は、圧縮されたbase64が役に立ちます。テーブルスキーマを変更することはできません。テキスト列のみがあるので、バイナリデータをそのテーブルに格納する必要があります。唯一可能な方法は、バイナリをbase64文字列に変換することです。

    +3

    あなたはあなた自身の質問に答えることはできますが、うまくやっていることを知りませんでした! –