13. MongoDBのグリッド

公式ウェブサイトは以下を参照してください(以下のリンクは順次リンクです)。

https://docs.mongodb.com/manual/core/gridfs/
https://docs.mongodb.com/database-tools/mongofiles/#mongodb-binary-bin.mongofiles
https://docs.mongodb.com/データベースツール/インストール/インストール/

FS:ファイルシステム(File System)。

GridFS の紹介。

      MongoDB のドキュメント (データ) は BSON 形式で保存されますが、BSON の制限により 16M 未満のデータしか保存できませんが、この問題に対処するために、MongoDB では 16M を超えるファイルを保存できる GridFS サブモジュールを提供しています。GridFS は、MongoDB に大きなファイルを保存するためのファイル仕様です。公式にサポートされているすべてのドライバーは GridFS 仕様を実装しています。

注: 実際、16M 未満の場合は MongoDB の bson を使用して直接保存できますが、16M を超える場合は Gridfs を使用する必要があります。

        GridFS は、fs.files と fs.chunks という 2 つのコレクションを使用してファイルを保存します。このうち、fs.files コレクションにはファイルの情報が格納され、fs.chunks にはファイルのデータが格納されます。GridFS は、大きなファイル オブジェクトを複数の小さなチャンク (ファイル フラグメント) (通常は 256k/個) に分割し、各チャンクは Mongodb のドキュメントとしてチャンク コレクションに保存されます。

mongofilesツール

        mongofiles 実行可能プログラムは、GridFS オブジェクトの MongoDB インスタンスに保存されているファイルに対するコマンドライン操作を提供し、ファイル システムに保存されているオブジェクトと GridFS 間のインターフェイスを提供します。MongoDB4.4 以降、mongofiles は MongoDB サーバーとは別にリリースされ、独自のバージョン管理を使用していることが公式 Web サイトから知られており、初期バージョンは 100.0.0 です。以前は、mongofile は MongoDB サーバーとともに配布され、一致するバージョン管理が使用されていました。ツールのインストールについては公式サイトを参照してください。

mongofiles の使用法は、次のように主に --help を参照します。

 便宜上、コマンド ライン ステートメントの例を 2 つ示します。

./mongofiles --uri='mongodb://mongouser:qidian%[email protected]:27017' --db db_shuozhuo put service.yaml

./mongofiles --host 11.186.6.xxx:27017 -u mongouser -p wexin@mongo -d db_shuozhuo put build_vs_env.sh

アップロードが成功したことを確認する簡単な方法もあります。1 つは実行後の出力を確認すること、もう 1 つはターゲット データベースに対応するエントリがあるかどうかを確認することです。以下の図に示すように、2 つのコレクションに実際に何が格納されているかを確認できます。

いくつかの考え。

        Gridfs はファイルを保存できますが、企業は追加のファイル ストレージ (cos など) を導入する必要がなく、水平拡張が容易であるという利点もあります。しかし、個人的には、gridfs はあまり実用的ではないと感じています。1つ目はコストです。画像やファイルの場合、特殊なオブジェクト ストレージ (cos) を直接使用する方がより専門的であり、コストもまだ低いため、データベースを使用するのはそれほど自然ではありません。もう一つはパフォーマンスです。mongodb からファイルにアクセスすると、ファイル システムから直接ファイルにアクセスするよりも遅くなります (中間層のオーバーヘッド)。また、GridFs 上のドキュメントを変更する場合は、まずドキュメントを削除してから再度保存する必要があります。

インターネットで他の人を見てみると、彼らも同様の意見を持っています。「ここで  ファイルシステムを作成したい場合は、専門的なファイルシステムを使用するのが最善です」。たとえば、TFS (Taobao File System、小さな画像への大量のランダム アクセス用)、FastDFS、mooseFS などです。

        もちろん、ゲームなどの小規模なプロジェクトには依然として意味があるはずです。たとえば、MongoDB という 1 つのデータベースだけが、メッセージの保存、ファイルの保存、および Redis として機能できます。1 つのデータベースですべてのニーズを満たし、エンジニアリング コードを簡素化し、コストを大幅に削減できます。さまざまなストレージ トランザクションのコスト。

Supongo que te gusta

Origin blog.csdn.net/mijichui2153/article/details/118977823
Recomendado
Clasificación