ext4ファイルシステムの1つのディレクトリに多くのファイルがある場合、どのような結果が発生しますか?

ext4ファイルシステムの1つのディレクトリに多くのファイルがある場合、どのような結果が発生しますか?

私のタスクは、データベースを使用せずにJSONリストをディスクに保存することです。次のオプションがあります。

  • 大きなファイルに保存します。

  • 別のファイルに保存してIDで入力してください。

個人的には、他のJSONに触れることなく、すべてのJSONをIDとして直接処理できる2番目のオプションを好みます。ただし、JSONエントリはほぼ100万から100万に達するため、デフォルトのファイルシステム(私の場合はext4)に悪影響を及ぼす可能性があるという懸念があります。

  • これがファイルシステムのファイル数制限(ディレクトリまたはファイルシステム全体)を超えていますか?

  • 特定のIDを検索すると速度が遅くなりますか?

    具体的には、私はディレクトリの下のファイルリストがディレクトリのinode構造によって維持されると思いますが、ファイルリストを保持するためにどのデータ構造(リストまたはマップ)を使用するのかわかりません。ディレクトリ階層を使用すると、検索時にパフォーマンスが向上しますか?例えば?0123456789.json代わりroot/01/0123456789.jsonroot/0123456789.json

ベストアンサー1

単一のディレクトリに100万個のファイルがある場合は遅くなりますが、100万個のエントリで集計されたJSONを解析します。最善の方法は実際にハッシュディレクトリを使用することですが、おそらく1つのレベルではなく2つのレベルを下回ることをお勧めします。つまり、合計に0123456789.json入れます。root/0/01/0123456789.json987654321.jsonroot/9/98/987654321.json

おすすめ記事