MongoDB结构划分
一、 基本结构划分 从整体上可以将MongoDB自底向上划分为四部分: 1. 基础数据部分 www.2cto.com 2. 一般的数据库操作 3. MongoDB提供的操作特性 4. 数据库架构管理 二、 各部分简介 1. 基础数据部分 数据库最终的工作就是把数据存储,然后在用户需要的时候
一、 基本结构划分
从整体上可以将MongoDB自底向上划分为四部分:
1. 基础数据部分 www.2cto.com
2. 一般的数据库操作
3. MongoDB提供的操作特性
4. 数据库架构管理
二、 各部分简介
1. 基础数据部分
数据库最终的工作就是把数据存储,然后在用户需要的时候以一种方式把数据提出去。因此,所有数据都需要以一种形式保存到内存或者硬盘里。 www.2cto.com
在MongoDB里面主要有两种数据的存储方式。
BSON:类似于一个有序的JSON。是数据存储的基础,在MongoDB中的大部分数据都是用这种数据结构与用户交互。与一般数据库不同虽然MongoDB也是KV操作读取数据,但是用一Key对应的Value可以是不同类型。
GridFS:BSON只能存储最大4MB的数据,当需要存储大型数据的时候,就需要用GridFS来做存储了。
2. 一般数据库操作
作为数据库应该包含基本的增、删、改、查功能,并且提供加速基本操作的辅助工具,MongoDB同样也提供了这些基本功能。
动态查询:基本的增删改查功能。同时在做这些操作的时候MongoDB为这些操作自动优化,如:考虑可以利用的索引,直接从缓存中读取内容等等。
索引:在MongoDB中为每一条数据创建了一个_id的属性,作为最基本的索引。用户也可以自己创建一个索引来提高查询效率。MongoDB也提供了合并索引的功能,可以用来合并多关键词的索引。
地理位置索引:可以根据距离等位置相关属性来做索引。
预查询:在真正执行一条语句前,测试查询等基本操作的耗时,作为数据库设计或者语句效率的检测。 www.2cto.com
3. MongoDB提供的操作特性
同一位置插入数据:与其他数据库不同,MongoDB在真正将数据写入本地前,做了缓存处理,在内存中读写数据的速度比每次都写到本地的速度快多了。
Map and Reduce Function:MongoDB的特殊数据结构,决定了他可以有与众不同的特殊数据处理方式。编写这两个函数可以完成很多数据库本身没有提供的自定义功能。
4. 数据库架构管理
数据备份:由于MongoDB的实时读取性和内存中处理数据的特性,单个MongoDB数据库是很容易造成数据丢失的,为保证数据不丢失或少丢失(实际生产中会丢失),MongoDB提供了数据备份和选举运行主机的机制。(在实际生产中不能需要多台MongoDB服务器共同运行)下图简单描述了MongoDB的主从机关系。
自动分片:在实际生产中,当数据量过大超过了一台MongoDB服务器所能支持的时候,需要考虑建立一个MongoDB的数据库集群,每一个集保存整体数据的某一部分。下图简单描述了一个MongoDBs集群的工作情况:
三、 源码阅读顺序及要点
了解了MongoDB的集群方式后,我觉得自底向上对MongoDB的源码进行阅读比较好。
www.2cto.com
原因:
1. 先了解基础的数据结构,对逻辑算法中出现的数据结构有所了解。
2. 算法与运行平台无关,集群等功能与运行平台有关。为了不过早的牵绊与系统功能,理解MongoDB的设计哲学之后对深层次功能的了解更有利。
3. 在生产优化中,底部的数据结构或者算法调整可能更容易产生效果。
因此,列出如下几点阅读顺序:
1. GridFS,BJSON
了解基本数据结构
2. 基本搜索功能
了解对数据的基本处理,输入输出规则
3. 索引,搜索优化
索引的创建和索引是如何提供其强大的辅助搜索功能的。
4. 数据备份 www.2cto.com
多台服务器的副本是如何保持同步的
当主服务器宕机程序是如何选择副本服务器的
当主服务器恢复后是以什么策略再次同步数据的
5. 自动分片搜索
当创建完分片之后,MongoDB是如何处理多个服务器之间的数据跳转搜索的。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











eコマースのWebサイトを開発するとき、私は困難な問題に遭遇しました。ユーザーにパーソナライズされた製品の推奨事項を提供する方法です。当初、私はいくつかの簡単な推奨アルゴリズムを試しましたが、結果は理想的ではなく、ユーザーの満足度も影響を受けました。推奨システムの精度と効率を改善するために、より専門的なソリューションを採用することにしました。最後に、Andres-Montanez/Adcumentations Bundleを介してAndres-Montanez/Bundleをインストールしました。これは、問題を解決しただけでなく、推奨システムのパフォーマンスを大幅に改善しました。次の住所から作曲家を学ぶことができます。

Hash値として保存されているため、Navicatを介してMongoDBパスワードを直接表示することは不可能です。紛失したパスワードを取得する方法:1。パスワードのリセット。 2。構成ファイルを確認します(ハッシュ値が含まれる場合があります)。 3.コードを確認します(パスワードをハードコードできます)。

gitlabデータベース展開ガイドcentosシステム適切なデータベースの選択は、gitlabを正常に展開するための重要なステップです。 GitLabは、MySQL、PostgreSQL、MongoDBなど、さまざまなデータベースと互換性があります。この記事では、これらのデータベースを選択して構成する方法を詳細に説明します。データベース選択の推奨MYSQL:広く使用されているリレーショナルデータベース管理システム(RDBMS)。安定したパフォーマンスを備えており、ほとんどのGitLab展開シナリオに適しています。 POSTGRESQL:強力なオープンソースRDBMSは、大規模なデータセットの処理に適した複雑なクエリと高度な機能をサポートしています。 Mongodb:人気のNoSQLデータベース、海の扱いが上手です

MongoDB効率的なバックアップ戦略の詳細な説明CENTOSシステムでは、この記事では、データセキュリティとビジネスの継続性を確保するために、CENTOSシステムにMongoDBバックアップを実装するためのさまざまな戦略を詳細に紹介します。 Dockerコンテナ環境でのマニュアルバックアップ、タイミング付きバックアップ、自動スクリプトバックアップ、バックアップメソッドをカバーし、バックアップファイル管理のベストプラクティスを提供します。マニュアルバックアップ:MongoDumpコマンドを使用して、マニュアルフルバックアップを実行します。たとえば、Mongodump-Hlocalhost:27017-U Username-P Password-Dデータベース名-O/バックアップディレクトリこのコマンドは、指定されたデータベースのデータとメタデータを指定されたバックアップディレクトリにエクスポートします。

MongoDBおよびリレーショナルデータベース:詳細な比較この記事では、NOSQLデータベースMongoDBと従来のリレーショナルデータベース(MySQLやSQLServerなど)の違いを詳細に調べます。リレーショナルデータベースは、行と列のテーブル構造を使用してデータを整理しますが、MongoDBは柔軟なドキュメント指向モデルを使用して、最新のアプリケーションのニーズをより適切に適しています。主にデータ構造を区別します。リレーショナルデータベースは、事前定義されたスキーマテーブルを使用してデータを保存し、テーブル間の関係は一次キーと外部キーを通じて確立されます。 MongoDBはJSONのようなBSONドキュメントを使用してコレクションに保存します。各ドキュメント構造は、パターンのないデザインを実現するために独立して変更できます。アーキテクチャデザイン:リレーショナルデータベースは、事前に定義された固定スキーマが必要です。 Mongodbサポート

MongoDBユーザーを設定するには、次の手順に従ってください。1。サーバーに接続し、管理者ユーザーを作成します。 2。ユーザーアクセスを許可するデータベースを作成します。 3. CreateUserコマンドを使用してユーザーを作成し、その役割とデータベースアクセス権を指定します。 4. Getusersコマンドを使用して、作成されたユーザーを確認します。 5.オプションで、特定のコレクションに他のアクセス許可または付与ユーザーの権限を設定します。

DebianシステムでMongoDBデータベースを暗号化するには、次の手順に従う必要があります。ステップ1:MongoDBのインストール最初に、DebianシステムがMongoDBをインストールしていることを確認してください。そうでない場合は、インストールについては公式のMongoDBドキュメントを参照してください:https://docs.mongodb.com/manual/tutorial/install-mongodb-onedbian/-step 2:暗号化キーファイルを作成し、暗号化キーを含むファイルを作成し、正しい許可を設定します。

Mongodbに接続するための主なツールは次のとおりです。1。Mongodbシェル、迅速な表示と簡単な操作の実行に適しています。 2。プログラミング言語ドライバー(Pymongo、Mongodb Javaドライバー、Mongodb node.jsドライバーなど)、アプリケーション開発に適していますが、使用方法をマスターする必要があります。 3。GUIツール(Robo 3T、Compassなど)は、初心者と迅速なデータ表示のためのグラフィカルインターフェイスを提供します。ツールを選択するときは、アプリケーションのシナリオとテクノロジースタックを検討し、接続プールやインデックスの使用などの接続文字列の構成、許可管理、パフォーマンスの最適化に注意する必要があります。
