ののように保存/取得する単位百万ファイルがメタデータがSQLデータベース

StackOverflow https://stackoverflow.com/questions/1257415

質問

しているプロセスの初期発生3~4億PDFファイル、および継続の80Kます。いよいか小さい(50K)が、どのよう悩んはどのよう管理計量ファイルの私の生成を簡単にルックアップ.詳細:

  1. よって詐欺サイトだと思いその他の手順を実行ファイルにして発生されることになっており、複数のサーバーに参加し、いま注視する必要がありファイルも生成されます。
  2. 一度生成され、ファイルが利用可能なルックアップの過程か書かれています。基本的に、必要にして引っ張に基づく順番になります。
  3. 時には、既存の順番が再送信が必要であることや、生成されたファイルを上書きのオリジナル。

参加したのがきっかけする予定だったのですが部屋を借りるのですが身分証明書ファイルのすべての単一のディレクトリには、NAS、このような良いアイデアがあるので、あなたは、あなたが何百万のWindowsが取扱うことはありません万ファイル-ルックアップ非常に優雅に.話を楽しめるように設定しましたアドバイス

  1. シングルフォルダには免許が必要です。ファイルのいかなる場れます)を使って取得します。IO.ファイルをファイル名って決定します。
  2. い場合、そのフォルダーの観戦をしたいので新しいファイルシステム。IO.DirectoryWatcherでも多くのファイルがってくるのではないかと思いま開始が低迷しているとの多くのファイル?
  3. すべてを蓄積することもできる用途にでも便、SQL Serverデータベースょうか?以来、私は取得する際に必要によって参照値は、そこ良いですね。

ご思い!

役に立ちましたか?

解決

いグループのファイルの特定のサブフォルダを整理し、サブフォルダ)の一部のビジネスロジックです。ものすべてのファイル中で指す。間時期です。または毎のファイルしたと思い数1000max.ありその理想的な数であれば誰かりますがとても感じが良かったです。

のファイルも年齢に行く。その場合、ソート、ファイルするdeletable chunk.ない場合はできますハードウェアベンダー?

ある引数の両面保存ファイルの改善に取り組んでいます。●

  • のんセキュリティを強化がもよくサンプルからファイルのDB;一方、潜在的に貧しい性能がここにあるのでよくサンプルからファイルはDBです。
  • DBに継続してご利用いただけ心配はどのように多数のファイル/フォルダー、セクター、NASクラスターでは、何をDBの問題がなければ、おそらくんも実施します。しかし、それじゃが管理-審査のデータとして思いますbazillion用途にでも便な単一テーブルとも言え.(きパターンを可能にするテーブルに基づく旅行記のビジネスロジック、削除またはアーカイブは限ります。ることもで仕切られ、以降、テーブル離が限定1000割.)
  • SQL Server2008をFileStreamデータ型あまり知りませんが、十分に検討する価値です。

最後の点の心配もに保護-管理しているとのデータを揃えて".ばDBの店舗の詳細情報はファイルのパス名のファイルのファイルの移動が得られることもあっhosed.

他のヒント

ご質問にお答え:

  1. ないことによって単一のフォルダにまとめた。としてチャンスです また、実際のファイルをディスク、その他。
    代わりになぜアカウントを使用して別のディレクトリに分けバッチの1000?そのIDとして鍵となる。
  2. 多くのファイルも洪水のDirectorWatcherで、失うものとします。に使用しましたこと過去に、過去の一定のポイント(奉百)がその場で発音を確認することがで逃ファイルです。あるうのではなくディレクトリ受信するファイル、およびその過程でこのゆかるものを表しています。ここではその後トリガープロセスを更新します。
  3. ない店舗の文書をデータベース、エクスペディアのキャンセル店舗メタデータの改善に取り組んでいます。●

あなたは簡単にビジネスロジック、または順序1日当たり、発注のようなものがあること1つのフォルダに「塊状」(多くのヒットならば、特にいいです、いくつかの中でこれを実行することなく、複数のフォルダにファイルを整理することができます他の人)。

これを行う最も簡単な方法は、多分あなたはこのような何かを得るように、ファイル名の一意のハッシュを作成することです

sf394fgr90rtfofrpo98tx.pdf

次に、2つの文字のブロックにこれを破る、そしてあなたがこれを取得します。

sf/39/4f/gr/90/rt/fo/fr/po/98/tx.pdf
あなたが見ることができるように

、それはあなたが簡単にナビゲートすることができ、深いディレクトリツリーを与えます。

良いハッシュ関数を使用すると、これは非常に均等に分散され、そしてあなたは、ディレクトリごとに複数のエントリ1296を得ることはありません。あなたは(非常にまれであるべき)衝突を取得した場合は、終了間際に番号を追加します。tx.pdf、tx_1.pdf、tx_2.pdf。あなたはこのために取得凝集の種類は、非問題になるように、ここでも、このような大規模なハッシュの衝突は、極めて稀である必要があります。

あなたはドキュメントがデジタル署名されていることを言ったので、あなたはおそらく、あなたがすぐそこに署名文字列の形式で必要なハッシュを持っています。

1)簡単なフォルダには、別のインデックスを容認できる速いかもしれないが、それは自分自身にだけ閲覧しそれをする能力を可能にするサブディレクトリにそれを置くために些細だとして。
だから今、あなたの命名規則を把握する必要があります。私は通常、IDの均一な分布を得るためにハッシュをお勧めしたいが、あなたはそんなにやっているとして、それはおそらくあなたがすでに持っている値を使用することは理にかなっていますが。あなたは注文番号を持っていればあなたもタイムスタンプを持っていますか?もしそうなら、単にタイムスタンプを使用して、注文番号を付けます。

// EN:

ちょうどあなたが注文IDを使用している場合は、 HTTPを経験することがあることに注意してください.wikipedia.org /ウィキ/ベンフォード%27s_lawする

あなたはそれをテストする必要があります。これらのソリューションのすべては、基礎となるファイルシステムに依存します。いくつかのファイルシステムは、巨大なディレクトリを扱うことができ、いくつかのことはできません。一部のファイルシステムインデックスそのディレクトリに、いくつかのない(これら二つの点は必ずしも関係ありません)。

ディレクトリのツリーにして物事を破る最後に、個々のディレクトリは、いくつかの全体的なエントリを持っている傾向があるだけで、あるため、パフォーマンスもする合理的なチャンスを持っています。それはあなたのファイルのための線形ディレクトリ検索を行っても、「愚か」1が合理的に素早く数百のエントリを検索することができるという理由だけで、ほとんどすべてのファイルシステムで動作します。

いくつかのツールは、(ロード文句を言うかもしれないが、ファイルシステムは、ディレクトリ・サイズは、あまり重要でディレクトリのインデックス作成(のような、言う、BTREEを、あるいは単に効果的にこのような状況でも同じことである内部的にソート)された場合何が起こるかわから4Mファイル、)とWindowsエクスプローラのウィンドウます。

だから、私はあなたの計画のオペレーティング・システムとファイルシステムのオプションを研究し、それをテストし、あなたのための最高の作品かを確認します。

のサブディレクトリのいくつかの論理的な順序を決定し、フォルダ内にせいぜい512かそこらのファイルのブロックに格納します。

データベースにファイルを格納しないでください。データベースは、データのためのものである、ファイルサーバは、ファイルのためのものです。ファイルサーバに保存しますが、データベース内のパスや検索情報を格納します。

なぜかを考慮せずに保存すべてのファイルに変換されたPDFをDB(blob) そのための利点:

  1. I beleiveまィにおいてdireclty OSのI/O、すべてのDBです。
  2. 必要なハッシュネーミング
  3. 簡単にバックアップを維持
特に小さなファイルで、あなたのファイルを格納するためのデータベースを使用する場合は、

オーバーヘッドが小さいはずです。 しかし、あなたはまた同じようなことを行うことができます:

DELETE FROM BLOBTABLE WHERE NAME LIKE '<whatever>'

か、有効期限を持っている、またはファイルをリフレッシュしたいとき、あなたはして削除します:

DELETE FROM BLOBTABLE WHERE CREATIONDATE < ...
etc...

質問:

なぜこれらの文書はPDFファイルとして生成して保存する必要があるのですか?

、彼らが発生することができるなら、なぜ単にデータベース内のデータを保持していないし、必要なときにその場でそれらを生成?これは、ディスク上のファイルを持って、とにかく検索していないために必要なの実際のデータを検索できることを意味します。何かを再生成することなく、必要なときに、この方法は、あなたはまた、PDFテンプレートを更新することができますか?

1) このよう全く異なりさんの弟ですが、したいことによって、SQLデータベースからtrully小さなファイルです。SQLサーバーにもより迅速かつ簡単に必要なファイルな狂気ディスクtrashing通常関連した列挙型のものをクリックします。 また、保存のファイルをアプリケーション(私は)に対しても容易にバックアップ/復元す。

2) 保存しているすべてのディレクトリから指してwindowsでの割り出しサービス(ムズムズ)を作成した自身のインデックスにSQLサーバーとのファイル名のフルパス。私はあなたが保管を別のディレクトリだけ何万人ものファイルです。うまく使うときの順序とフォルダの名前?

にかかわらずその保存– しないスキャンは、ディレクトリのファイル -するにしても絶対に必要となる指数の一部の並べ替えができます。

武器agiは、dexで下がらないboxerぐ!

マイファイルデータベースには、各フォルダ内の多くのファイルで、400万人以上のフォルダが含まれています。

ただ、一つだけのディレクトリ内のすべてのフォルダを投げました。 NTFSは、あらゆる問題なくこれを扱うことができ、そしてあなたがそれを移動する必要がある場合Robocopyをのような高度なツールを助けることができます。

ちょうどあなたがスキャンせずにインデックスファイルをできることを確認します。私は、MySQLデータベースに私のインデックスを投げることによって、これをやっています。

だから私はいくつかのメタデータにより、MySQLデータベースを検索し、ファイルを取得し、インデックスを取得します。それから私は、直接ファイルを読み取るために、このインデックスを使用しています。これまでの私のためにうまくスケーリング。しかし、あなたはランダムアクセスとなり、ランダム読み取りにすべてを回すとなりますのでご注意ください/書き込みます。これは、HDDのためのパフォーマンスの低下であるが、幸いSSDは大いに役立つでしょう。

また、私は、mysqlデータベースにファイルを投げていないでしょう。あなたはMySQLを理解し、クライアントがなくても、読み込みネットワークを行うことができません。今私はちょうどそのネットワークURLを使用することができますので、任意のプログラムを使用して、ネットワーク上の任意のファイルにアクセスすることができます。

私は非常に多くの他の人が言っているように、あなたはサブフォルダを行うが、あなたは、コードを介してデータを見つけることができるようにすべきだと思います。日時が動作するかどうかたとえば、それを使います。あなたは(日次、週次、日次Xレポート、時間ごとのY報告書など)のレポートに階層構造のいくつかのフォームがあるように思われる言っ読んでから私は、なぜレポートが生成されているの構造を見て、ビルドしますそのようにまで私のディレクトリ。

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