- PR -

大量にファイルを格納する場合のフォルダデザイン

投稿者投稿内容
janon
会議室デビュー日: 2003/04/02
投稿数: 13
お住まい・勤務地: 東京都
投稿日時: 2005-02-17 23:36
janon と申します。

一つのフォルダに大量のファイルやフォルダを置く場合の
目安などについておうかがいできればと思います。
環境はWindows XP Professional を利用しています。

例えば、十万個のファイルを保存したい場合
いくつのフォルダに分けた方が良いでしょうか?

一つのフォルダに保存する、ファイルやフォルダの数について
目安などがありましたら、教えていただければと思います。

宜しくお願いいたします。








ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2005-02-18 02:35
> 例えば、十万個のファイルを保存したい場合
> いくつのフォルダに分けた方が良いでしょうか?

何個まで格納できるかは知りませんね。

先日Exchange Server の不正Mail Directoryを覗いたら
18万個のFileが存在しました。

こういった場合、Explorerで開くのは現実的ではない
(応答が停止しているように見える)ので、そういった面は
考えたほうがいいかもしれません。

まあ、GUIで扱わなければいいだけの話ですが・・・
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-02-18 09:21
ファイルが多いと、GUIでなくても、プログラムから開く場合でも遅くなりますので、適宜、分けた方がいいでしょう。どうやって分けるかは、ケースバイケースだと思います。
janon
会議室デビュー日: 2003/04/02
投稿数: 13
お住まい・勤務地: 東京都
投稿日時: 2005-02-18 10:21
コメントをありがとうございます。

経験的にファイルシステムの反応が遅くなったり
プログラムが停止しているように見えたりすることはわかるのですが
その目安がわからずにおります。

>どうやって分けるかは、ケースバイケースだと思います。

システムエンジニアの方がフォルダ構造をデザインするとき
例えば、大量のログファイルですとか、
大規模な企業のファイルサーバですとか、
何を目安にデザインするかなあ、と思いまして
こちらに書き込んでみました。

基本的にはGUIでなくプログラムからの
ファイルアクセスを想定しています。

宜しくお願いいたします。
雲山
会議室デビュー日: 2005/01/17
投稿数: 17
お住まい・勤務地: 流浪の砂布巾
投稿日時: 2005-02-18 11:42
こんにちわ、雲山というものです

定義的(常識的?)なことから申し上げると
引用:

NTFSでは、1ボリュームのサイズは最大で2の32乗セクタまでなので(理論的には2の64乗セクタおよび2の64乗クラスタまで可能)、ボリュームの最大サイズは2Tbytesまで利用できる。
またファイル・サイズの最大は2の64乗まで利用できる(FAT16ファイル・システムでは2の32乗=4Gbytesまで)。
 [引用]
 http://www.atmarkit.co.jp/icd/root/13/14575813.html



とま、これを踏まえて考慮されるといいかと
経験的には格納単位にファイルの種類分けして、大容量・多数化しそうならさらに単位を小さくしてます。

・フォルダ分けの例
 ログ  :システム→年→月→日→時間
 ファイル:システム→大項目→中項目→小項目

ある意味、単位化というのは日常的にみなさんがやっていることではないでしょうか
あんまり参考にならないかもしれませんでした、はい

# そういえば超整理術とか一時期はやったな・・・

[ メッセージ編集済み 編集者: 雲山 編集日時 2005-02-18 12:28 ]
janon
会議室デビュー日: 2003/04/02
投稿数: 13
お住まい・勤務地: 東京都
投稿日時: 2005-02-21 18:14
コメントをありがとうございます。
うーん。

現在のところ、
階層分けをしなければ
10万個のフォルダに90万個のファイルを
分類せねばならない状況です。

まずはその通り実装してみようと思います。
で階層わけがどのようにパフォーマンスを改善するか
また、こちらの掲示板にフォローアップしてみようと思います。
コメントありがとうございました。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-02-21 18:24
フォルダ数が10万というのも多い気がします。

ファイル数およびフォルダ数の個数にアクセス時間が比例するとする場合、
階層が2階層(すなわち、AAA/BBB.txtなど)ならば、総アクセス時間は、
フォルダを約950(=√90万)に分けたときに最小になるかと思います。

とはいえ、普通は自由に分けれませんから、950に近いような分け方を工夫
する必要があるでしょう。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2005-02-21 18:38
unibon です。こんにちわ。

引用:

janonさんの書き込み (2005-02-21 18:14) より:
現在のところ、
階層分けをしなければ
10万個のフォルダに90万個のファイルを
分類せねばならない状況です。


これだと、平均すると1個のフォルダに9個のファイル、でしょうか?

なお、昔(FAT12 や FAT16)は、ひとつのフォルダーにたくさん(おおよそ1千個以上)入れると、エントリーの管理が複雑なためかアクセスに極端に時間がかかりましたが、最近のファイルシステム(FAT32/NTFS)ならば、数万個位ならぜんぜん平気のようです。
したがって、プログラムからアクセスする分には問題にはならないことがほとんどでしょう。ただし Explorer などで覗くと、依然としてとても時間がかかります。(ソートしちゃうためかも?)
#「このフォルダーは決して開いてはいけません」と注意すれば良いのでしょうけど。

引用:

janonさんの書き込み (2005-02-21 18:14) より:
まずはその通り実装してみようと思います。


以下、あたりまえですが、ファイル管理のロジックを、書き込む側と読み出す側で共通のロジックを持つようにして差し替えが容易なようにしておけば、大丈夫でしょう。

スキルアップ/キャリアアップ(JOB@IT)