私は、すべてのファイルがmd5の合計に等しいファイル名で保存されるファイルストアを含むアプリケーションを管理します。すべてのファイルは1つのディレクトリに保存されます。現在は数千ありますが、すぐにサーバー上の数百万のファイルになります。現在のサーバーは、ext4ファイルシステムでUbuntu 11.10を実行しています。
誰かが私に、ディレクトリに多くのファイルを置くのは賢明ではないと言った、これは検索時間と信頼性の大幅な増加を引き起こすからです(彼は単一のディレクトリが指すことができる最大ファイルについての話を持っていたので、大きなリンクリストになりました)。代わりに、ファイル名のサブストリングなどを使用してサブディレクトリを作成することを提案しました。ただし、これにより、アプリケーションの一部の処理が非常に面倒になります。
これはまだ本当ですか、または現代のファイルシステム(たとえばext4)はこれに対処し、自然にスケーリングするより効率的な方法を持っていますか?ウィキペディアにはファイルシステムに関する詳細がありますが、ディレクトリごとの最大ファイル数や検索時間については何も言及していません。