質問

誰かがC#で画像ファイルをDBに保存する方法についてアドバイスをくれますか?私はたくさんの画像を保存するので、必要なスペースを減らすための最良の方法は何ですか?現在、dbでvarbinary(max)フィールドを使用しています。

ありがとう!

役に立ちましたか?

解決

実際のファイルをSQLに保存する必要がある場合は、画像のサイズについていくつかの制限を置き、データベースサイジングを適切に計画することを確認してください。画像の数とどのサイズを期待していますか?

SQLに保存する必要がある場合、私の設定は自動的に独自のSQLデータベースに座ることです。これにより、これらの画像で私が遭遇したパフォーマンスの問題は、データベースの残りの部分に影響しません。

これで、画像をSQLデータベースに保存する必要がない場合は、Azure Blobストレージで行われるように呼びかけているだけだと思います。それを見てください - それはあなたが非常に効率的なシステムであなたが望むものをあなたに与えます。

Azureを使用できない場合は、画像の読み取り/書き込み/ルックアップをファイルシステムに処理するクラスをまとめる必要があります。ファイルシステムへの保存(適切に完了)は、SQLに保存するよりもはるかにうまく機能します。

他のヒント

それは大丈夫だろう。ただし、これらの画像が非常に大きく、DBAがOYUをそこに置くためにもうOyuを好まない場合は、どこかにドライブに置いてDBに場所を保存できます。

これを処理する方法はたくさんあると思います。あなたの長所と短所の重さを量るだけです。

私はあなたに1つの選択肢を与えました。

画像をデータベースに保存するのは良い考えではありません。 URLを画像に保存できます。

写真はどの形式で、どのデータベーステクノロジーを使用していますか?

1つのオプションは、画像をバイナリ配列に変換し、これをデータベースにプッシュすることです。 CodeProjectでこれを達成する方法についていくつかの素晴らしいコードを見つけました:

http://www.codeproject.com/kb/aspnet/imageindatabase.aspx

Magnusが言ったように、FilestreamsはDBのページに保存されていないため、パフォーマンスには影響しません。

ただし、DBにファイルを保存すると、DBバックアップがはるかに大きくなります。

他の誰かがURLだけを保存することについて言及しました。これは素晴らしいアイデアでもあり、おそらく簡単なセットアップのフォルマントごとに最も多くのアイデアです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top