sql >> データベース >  >> RDS >> Mysql

画像をデータベースに直接保存しますか、それともbase64データとして保存しますか?

    画像(ファイル)は通常、base64でエンコードされたデータベースに保存されないと私は主張します。代わりに、生のバイナリ形式でバイナリ(blob)列またはファイルに保存されます。

    Base64はトランスポートメカニズムとしてのみ使用され、ストレージには使用されません。たとえば、base64でエンコードされた画像をXMLドキュメントやメールメッセージに埋め込むことができます。

    Base64もストリームフレンドリーです。 (データの合計サイズを知らなくても)オンザフライでエンコードおよびデコードできます。

    base64は転送には問題ありませんが、base64でエンコードされた画像を保存しないでください

    Base64は、チェックサムなど、ストレージに価値のあるものを提供しません。

    Base64エンコーディングでは、ストレージ要件が生のバイナリ形式に比べて33%増加します。また、永続ストレージから読み取る必要のあるデータの量も増加します。これは、依然として一般的にコンピューティングの最大のボトルネックです。一般に、より少ないバイトを読み取り、その場でエンコードする方が高速です。システムがIOバウンドではなくCPUバウンドであり、定期的にbase64で画像を出力している場合にのみ、base64での保存を検討してください。

    インライン画像(HTMLに埋め込まれたbase64エンコード画像)自体がボトルネックです。ネットワーク経由で33%多いデータを送信し、シリアルに送信します(Webブラウザーは、ページのダウンロードを完了する前にインライン画像を待機する必要があります) HTML)。

    それでもbase64でエンコードされた画像を保存する場合は、何をするにしても、base64でエンコードされたデータをUTF8列に保存しないようにして、インデックスを作成してください。



    1. OraclesqlQueryのJoinで削除

    2. 2つの日付の間の日付のリストを取得します

    3. SQLITEは読み取り専用データベースをバージョン1から2にアップグレードできません

    4. SQL Server Management Studioでテーブルの値をすばやく編集するにはどうすればよいですか?