プログラマーとして、誰もがデータベースに触れ、mysql と mongoDB についてはある程度理解している必要があると思います。ここで、mongoDB データベースについて簡単に説明します。
MongoDB は、C++ 言語で書かれた分散ファイル ストレージに基づくデータベースで、WEB アプリケーションにスケーラブルで高性能なデータ ストレージ ソリューションを提供するように設計されています。
MongoDB は、リレーショナル データベースと非リレーショナル データベースの中間の製品であり、非リレーショナル データベースの中で最も機能が豊富で、最もリレーショナル データベースに似ています。サポートされるデータ構造は非常に緩やかで、json に似た bson 形式であるため、より複雑なデータ型を格納できます。 Mongo の最大の特徴は、サポートするクエリ言語が非常に強力であることです。その構文はオブジェクト指向のクエリ言語に似ており、リレーショナル データベースの単一テーブル クエリと同様のほとんどの機能を実装できます。データの。
mongoDB データベースの特徴:
高性能、展開が簡単、使いやすく、データの保存に非常に便利です。主な機能特徴は次のとおりです:
* セット指向のストレージ、オブジェクト型データの保存が簡単。
いわゆる「コレクション指向」とは、データがグループ化され、コレクションと呼ばれるデータセットに保存されることを意味します。各コレクションにはデータベース内で一意の識別名があり、無制限の数のドキュメントを含めることができます。コレクションの概念は、スキーマを定義する必要がないことを除けば、リレーショナル データベース (RDBMS) のテーブルに似ています。 Nytro MegaRAID テクノロジーのフラッシュ キャッシュ アルゴリズムは、データベース内の大規模なデータ セット内のホット データを迅速に識別し、一貫したパフォーマンスの向上を実現します。
*スキーマフリー。
スキーマレス構造ストレージを使用するということは、mongodb データベースに保存されるファイルについては、構造定義を知る必要がないことを意味します。必要に応じて、異なる構造のファイルを同じデータベースに保存できます。スキーマを使用してデータを保存することは、RDBMS でコレクションとテーブルを区別する重要な機能です。
*動的クエリをサポートします。
* 内部オブジェクトを含む完全なインデックス作成をサポートします。
内部オブジェクトを含むあらゆる属性にインデックスを付けることができます。 MongoDB インデックスは、基本的に RDBMS インデックスと同じです。クエリ速度を向上させるために、指定した属性および内部オブジェクトに対してインデックスを作成できます。これに加えて、MongoDB は地理空間ベースのインデックスを作成する機能も提供します。
*サポートのお問い合わせ。
MongoDB は豊富なクエリ操作をサポートします。MongoDB は SQL のほとんどのクエリをサポートします。
*レプリケーションと障害回復をサポートします。
MongoDB はマスター/スレーブ レプリケーション メカニズムをサポートしており、データ バックアップ、障害回復、読み取り拡張などの機能を実現できます。レプリカ セットに基づくレプリケーション メカニズムは、クラスタ データが失われないようにするための自動障害回復機能を提供します。
* 大きなオブジェクト (ビデオなど) を含む、効率的なバイナリ データ ストレージを使用します。
バイナリ形式のストレージを使用すると、あらゆる種類のデータ オブジェクトを保存できます。
* 断片化を自動的に処理して、クラウドレベルのスケーラビリティをサポートします。
*RUBY、PYTHON、JAVA、C++、PHP、C#、Perl、JavaScript、その他の言語をサポートします。
MongoDB は、現在の主流の開発言語すべてに対応したデータベース ドライバー パッケージを提供しており、開発者は、MongoDB データベースにアクセスするために、あらゆる主流の開発言語を使用して簡単にプログラミングできます。
※ファイル保存形式はBSON(JSONの拡張子)です。
BSON は、バイナリ形式の JSON の略称で、ドキュメントと配列のネストをサポートします。
*ウェブからアクセスできます。
MongoDB データベースにはネットワーク経由でリモートからアクセスできます。
*強力な集計ツール
豊富なクエリ機能を提供することに加えて、MongoDB はカウント、グループなどの強力な集計ツールも提供し、複雑な集計タスクを完了するための MapReduce の使用をサポートします。
MongoDB は、豊富なクエリ機能を提供することに加えて、カウント、グループなどの強力な集計ツールも提供し、複雑な集計タスクを完了するための MapReduce の使用をサポートします。
MongoDB の主なアプリケーション シナリオは次のとおりです:
(1) Web サイトのリアルタイム データ処理。リアルタイムの挿入、更新、クエリに最適で、Web サイト上のリアルタイム データ ストレージに必要なレプリケーションと高い拡張性を備えています。
(2) キャッシュ。高性能なため、情報インフラのキャッシュ層として最適です。システムの再起動後、システムによって構築された永続キャッシュ レイヤーにより、基礎となるデータ ソースの過負荷を防ぐことができます。
(3) 高いスケーラビリティのシナリオ。数十台または数百台のサーバーで構成されるデータベースに最適なロードマップには、MapReduce エンジンのサポートが組み込まれています。
(4) サイズが大きく価値の低いデータの場合、従来のリレーショナル データベースを使用して一部のデータを保存すると、コストが高くなる可能性があります。これまでは、プログラマーはストレージとして従来のファイルを選択することがよくありました。
適用できないシナリオは次のとおりです:
(1) 銀行システムや会計システムなど、高度なトランザクションの性質を必要とするシステム。現在、従来のリレーショナル データベースは、多数のアトミックで複雑なトランザクションを必要とするアプリケーションにより適しています。
(2) 特定の問題を対象とする BI データベースなどの従来のビジネス インテリジェンス アプリケーションは、高度に最適化されたクエリ方法を生成します。このようなアプリケーションには、データ ウェアハウスがより適切な選択肢となる可能性があります。
(3) 複雑なドキュメント (テーブル) 間のカスケード クエリ。
上記の内容は mongoDB データベースの簡単な紹介であり、皆さんが mongoDB データベースを理解できることを願っています。
関連する推奨事項:
mongodbデータベースの使用方法に関するLaravelチュートリアル
以上がmongoDBデータベースとはの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。