ファイルを保存する方がよいでしょうか?ファイルをデータベースに直接保存するか、そのファイルの場所に保存しますか?ファイルをデータベースに格納するか、そのファイルの場所だけを格納する必要がありますか?
答えて
回答をすばやく受け入れると、より多くのユーザーから回答が得られることはありません。
によって異なります。あなたはいくつかのことを考慮する必要があります。
あなたはそれが(すべてのSELECTのブロブを読んで、別の領域にブロブを格納しない)適切ブロブを処理しないことを意味し、ミッキーマウスのフリーウェアのデータベースを持っている場合は、外部のファイルを保持します。
エンタープライズデータベースを使用している場合、データベース内にブロブを保持することは問題ありません。これらはすべてのSELECTでブロブを読み取るわけではありません。 BLOBを取得するための追加読み込みは、「パフォーマンス」の「問題」ではありません。
ほとんどのデータベースは、8kまたは16kではなく2kページです。あなたのページサイズが大きい場合は、最後のページの未使用部分に、ブロブごとに少しの無駄があります。
blobをデータベースに保存することの欠点は、データベースのバックアップがはるかに大きくなることです。いくつかのエンタープライズ・データベースは、ページが変更されていないことを認識し、それを増分バックアップから除外します。他には増分がありません。
データベースにブロブを保存する利点は、データと参照整合性です。あなたは、ブロブと同期して行を消すという問題はありません。
- 私は昨年、データベースの130GBのデータと、dbの外に保存された700GBのデータを持っていました。 10年間の問題を経て、彼らは弾丸に噛み付き、文書をdbに移動しました。参照が絶対に正しいと思われるので、単純な仕事(長くてもシンプルな仕事)になっていたものは、重複してしまい、無効な参照が多かったからです。結果として得られたデータベースは630GBでした。100GBのダブがありました。 2Kページのサイズ。コメントへ
応答
- スラッシュまたはバックスラッシュ
簡単。データベースでは、スラッシュのみを格納します。ターゲットシステムを特定する方法と、IsWindoze
インジケータが必要です。これは、テーブル階層の上位にあり、Filename
のレベルではありません。インジケータが設定されている場合は、Filename
列を表示または表示するたびに、スラッシュをバックスラッシュに変更します。
DriveLetter
とUnixにはないコロンで同様の問題が発生します。
おかげで、私はseveralsを読んだ後に答えを受け入れるほうがよいでしょう。 –
私は異なる種類のOS上にある可能性があるシステムにファイルを格納しなければならず、遭遇するばかげたことの1つは、ファイルの物理パスのスラッシュ(/)またはバックスラッシュ(/)です。 –
@Truong:ありがとう。私は自分の答えに回答を追加しました。 – PerformanceDBA
データベースにファイルを格納しないようにしてください。大部分は彼らとよく対処しません。
追加するだけで、それは一般的に悪い考えです - リモートで実行可能になる唯一の時間は、レコードがメモリ内にあることを保証できるデータベースを扱うときですあなたがそれを必要としたときに、そこから奉仕しました。しかし、ほとんどの状況下では、ファイルシステムはより良い場所です。 – Arantor
私はファイルシステムがこれのために長年の間素晴らしいですが、10 MBのdbより大きいファイルを格納するのが難しいと思う。 –
まだMySQLのBLOBとCLOBが何であるのか分からないのですか? –
ファイルシステムにファイルを保存し、ファイルの場所をデータベースに保存することをお勧めします。この理由は、データベースが物理的にディスク上に(通常は8Kまたは16Kチャンクで)領域を割り当てる方法と関係があります。そこに大きなファイルをドロップすると、データベースはファイルを格納するさまざまなメカニズムを使用します(SQL Serverはこれをrow overflow dataと呼びます)。通常、これらの種類のページは通常の表の外に配置されているため、行の論理読取りではディスク上で2回の物理読取りが行われます。言うまでもなく、これはパフォーマンスにはあまり適していません。
最新の回答:エンジンによって異なります。
1990年代以降、SQL Serverでは2kのページサイズが使用されていませんでした。 Oracleはデフォルトで8K、SQL Serverは8Kです。 Sybase AFAIKのみが、過去1世紀にはまだ存在しています。
Oracleは、ディスクとバックアップの圧縮にBFILEで長く
を
SQL ServerとOracleの提供を行っているよう
SQL Serverは、今私が」、両方の長所を兼ね備えFILESTREAMを提供しています
注:これは主にPerformanceDBAのFUDの代替品を提供することです
- 1. ファイルをデータベースに格納する方が良いか、ファイルのパスに格納する方が良いですか?
- 2. Ruby On Railsでトークンをデータベースに格納する必要がありますか?
- 3. テキストファイルをSQL Serverデータベースに格納する必要がありますか?
- 4. jsonファイルにhtmlタグを格納する必要があります
- 5. デバッグ情報をアプリケーションのデータベースに格納する必要があります
- 6. Android:AccountManagerにデータを格納する場所
- 7. 暗号化されたファイルをアンドロイドに格納する場所
- 8. 圧縮ファイルをデータベースに格納する利点はありますか
- 9. FileInputStreamで使用されるファイルを格納する場所
- 10. "http://"にURLのデータベースレコードを格納する必要がありますか?
- 11. Googleマップアクティビティの場所をSQLデータベースに格納する方法
- 12. PHPでファイル格納場所を定義する方法アップロードファイル
- 13. 電子メールテンプレートを格納する場所
- 14. PL/SQLブロックを格納する場所
- 15. Laravel ajaxメソッドを格納する場所
- 16. メタデータを格納する場所は?
- 17. アプリケーションデータを格納する場所
- 18. javaストリームヘルパーメソッドを格納する場所
- 19. Windowsアプリケーションの格納場所
- 20. CoreData(Swift)に格納場所
- 21. 関数リファレンスをReduxストアに格納する必要がありますか?
- 22. 参照をC++でクラスに格納する必要がありますか?
- 23. IEブラウザヘルパーオブジェクトはどこにデータファイルを格納する必要がありますか?
- 24. フォーマット文字列をリソースに格納する必要がありますか?
- 25. 出力を格納する方法は、オブジェクトに格納するだけです。
- 26. オブジェクトを格納する場所セッション全体が必要で、データベースを更新しながら更新する必要がありますか?
- 27. solrが検索インデックスをデータベースまたはファイルに格納する場所はどこですか?
- 28. ネイティブMongoDBドライバNode.js - コレクションを格納する必要がありますか?
- 29. データベースにデータを格納するときにHTMLエンティティを使用する必要がありますか?
- 30. csvファイルとデータベースにユーザーデータを格納
どのデータベースをお使いですか? –
私は驚いています - この質問はまだ開いている議論/議論にありますか?そして、それは重複していない、うーん... –