私はどちらが良い/速いのか疑問に思っていました:
- バイナリデータとして保存された画像と、場合によってはいくつかのメタデータを含むドキュメントの個別のコレクションがあります。
- または、GridFSを使用して画像を保存します。
画像が小さい場合は、コレクション内のドキュメントにバイナリデータとして保存できます。ドキュメントをクエリするたびにそれらを取得することを考慮してください(クエリから「画像」フィールドを除外しない限り)。
ただし、画像が大きい場合は、GridFSを使用します。GridFSには、考慮すべき画像の処理に非常に優れた機能がいくつかあります。
パフォーマンスの点では、通常のドキュメントに対する読み取り/書き込みは、GridFSに対して行うのと同じです。どちらかを選択する際に、パフォーマンスが差別化要因になるとは思いません。
私の個人的な推奨事項はGridFSを使用することですが、特定のユースケースを分析する必要があります。
お役に立てれば。
私はGridFSを使用して写真やドキュメントを保存しています。とても簡単で、コレクションから取得してローカルに表示または保存するのも簡単です。同じコレクション内にバイナリデータとともにメタデータを保存できます。このように、それらを保存するために追加のコレクションを作成する必要はありません。
たとえば、私のプロジェクトの1つに、ユーザー名、ファイルタイプ、アップロード日とともにユーザープロフィール写真を保存しています。
GridFSは、効率的な方法でファイルを処理するために開発されました。 http://www.mongodb.org/display/DOCS/When+to+use+GridFS
データをファイルに変換して戻す必要があるかもしれないことを忘れないでください。
ただし、確かに、使用パターンを考慮したパフォーマンステストを実行してください。