小さなファイルを大量に保存する際の効率化のポイントを詳しく解説

高洛峰
リリース: 2016-10-18 14:37:03
オリジナル
1421 人が閲覧しました

WEB開発ではファイルを書き込む場面がよくありますが、最も多いのが画像ファイルの保存です。ファイルの数が多くなければ、効率を心配する必要はありません。しかし、多数のユーザーと大量の画像がある場合、画像ファイルの保存方法は画像ストレージ システム全体の効率に直接影響します。

通常、ディレクトリ内に 10,000 個のサブファイルがある場合、特定のファイルの読み取り速度が大幅に低下すると言われています。では、この発言は正しいのでしょうか?見てみましょう:

質問: 1 つのディレクトリにサブファイルが多すぎるとパフォーマンスに影響するのはなぜですか? たとえば、ディレクトリに 10,000 個のサブファイルがある場合、特定のファイルの読み取り速度が大幅に遅くなります。ファイル インデックスに関連しています。何ですか? インデックス内でこれらのノードを整理するにはどうすればよいですか?

答え: はい、インデックスに関連しています。 10,000は多すぎません。何百万もの人々からそれがわかります。ただし、10,000 を超えないようにすることをお勧めします。

質問: 数百万の遅いファイルはファイル システム全体に関連していますが、それは現在のディレクトリにどのように関係しているのでしょうか? 同様のファイル システムが数百万のファイルをサポートしている場合は問題ありません

回答: 1 つのディレクトリのことです。現時点では、molecular ディレクトリには数十万または数百万のファイルが直接含まれており、ディレクトリ インデックスの取得には非常に多くのリソースが消費されます。

サポート数が制限されているのは、ディレクトリオブジェクト自体のサイズが制限されているためです。ディレクトリは、ファイル名とファイルに対応するinode番号を保持するコンテナーであるため、制限されている場合、収容できるエントリは次のとおりです。も限定されています。

特定のファイルの読み取り速度は影響しません。しかし、それを見つけるのは難しいです。一部のファイル システムのインデックス作成メカニズムは不完全で、最適化アルゴリズムさえ備えていないため、各検索に時間がかかります。


上記の質問と回答から、「ディレクトリ内に 10,000 個のサブファイルがある場合、特定のファイルの読み取り速度が大幅に低下する」ということがわかります。ディレクトリを分割するにはどうすればよいですか?


実際、月、ハッシュポイント、または時間とハッシュの組み合わせで分割することができます。どの方法を使用するかは、プロジェクトのニーズによって異なります。 。 。


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート